summaryrefslogtreecommitdiff
path: root/idlc/CMakeLists.txt
blob: 0cabeef68162e3a47da2f202ee1590449e68fb2d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR})

FOREACH(flag ${LIBPKGS_CFLAGS})
	SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
ENDFOREACH(flag)
LINK_DIRECTORIES(${LIBPKGS_LIBRARY_DIRS})

IF(DEFINED BUILD_WIN)
  IF(DEFINED BUILD_32)
    SET(CMAKE_CXX_COMPILER "i686-w64-mingw32-g++")
  ELSE(DEFINED BUILD_32)
    SET(CMAKE_CXX_COMPILER "x86_64-w64-mingw32-g++")
  ENDIF(DEFINED BUILD_32)
  SET(EXE_STATIC "-static")
ENDIF(DEFINED BUILD_WIN)

IF(DEFINED BUILD_MACOS)
  SET(CMAKE_CXX_COMPILER "x86_64-apple-darwin15-clang++")
  SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -stdlib=libc++")
ELSE(DEFINED BUILD_MACOS)
  SET(CMAKE_EXE_LINKER_FLAGS "-static-libgcc")
  SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Werror")
ENDIF(DEFINED BUILD_MACOS)

SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wno-unused-function -Wno-sign-compare")
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden")
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -std=c++11")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS}")
SET(CMAKE_EXE_LINKER_FLAGS "-static-libstdc++")
SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")

ADD_DEFINITIONS("-DFULLVER=\"${FULLVER}\"")

AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} SOURCES)
AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/cs_gen CS_GEN_SOURCES)
AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/c_gen C_GEN_SOURCES)
AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/cpp_gen CPP_GEN_SOURCES)

BISON_TARGET(TIDLC ${CMAKE_CURRENT_SOURCE_DIR}/tidlc.yy ${CMAKE_CURRENT_SOURCE_DIR}/tidlc_y.cpp)
FLEX_TARGET(TIDLC ${CMAKE_CURRENT_SOURCE_DIR}/tidlc.ll ${CMAKE_CURRENT_SOURCE_DIR}/tidlc_l.cpp)

ADD_EXECUTABLE(${PROJECT_NAME}
	${BISON_TIDLC_OUTPUTS}
	${FLEX_TIDLC_OUTPUTS}
	${CS_GEN_SOURCES}
	${C_GEN_SOURCES}
	${CPP_GEN_SOURCES}
	${SOURCES}
	)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIBPKGS_LIBRARIES} ${EXE_STATIC})

INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)