summaryrefslogtreecommitdiff
path: root/adm/cmake/DRAWEXE/CMakeLists.txt
blob: ccbd6373e8848c4ee8b7661e261f51bf85ec5f27 (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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
SET(TOOLKIT_APP DRAWEXE)

SET(TOOLKIT_APP_MODULES
	DRAWEXE
)
SET(TOOLKIT_APP_LIBS
	TKDraw
	TKMesh
	TKGeomAlgo
	TKTopAlgo
	TKHLR
	TKGeomBase
	TKG2d
	TKBRep
	TKMath
	TKG3d
	TKernel
	TKService
)

MESSAGE(STATUS "Processing application: ${TOOLKIT_APP} (${TOOLKIT_APP_MODULES})")
SET(TOOLKIT_APP_SOURCE_FILES)
FOREACH(MODULE ${TOOLKIT_APP_MODULES})
	# add all .cxx/*.c files or each module
	FILE(GLOB source_files
		${${PROJECT_NAME}_SOURCE_DIR}/src/${MODULE}/*.cxx
		${${PROJECT_NAME}_SOURCE_DIR}/src/${MODULE}/*.c
		${${PROJECT_NAME}_SOURCE_DIR}/drv/${MODULE}/*.cxx
		${${PROJECT_NAME}_SOURCE_DIR}/drv/${MODULE}/*.c)
	#MESSAGE(STATUS "${source_files}")
	FOREACH(module_source_file ${source_files})
		IF (WIN32)
			# For compilers under Windows a define must be set per file to correctly set the export macro
			SET_SOURCE_FILES_PROPERTIES(${module_source_file} PROPERTIES COMPILE_FLAGS "-D__${MODULE}_DLL")
		ENDIF(WIN32)
	ENDFOREACH(module_source_file ${source_files})

	# append these source files to the list of source files of the toolkit
	SET(TOOLKIT_APP_SOURCE_FILES ${TOOLKIT_APP_SOURCE_FILES} ${source_files})
	# required include paths
	INCLUDE_DIRECTORIES(${${PROJECT_NAME}_SOURCE_DIR}/src/${MODULE} ${${PROJECT_NAME}_SOURCE_DIR}/drv/${MODULE})
ENDFOREACH(MODULE ${TOOLKIT_APP_MODULES})

# Version info
IF(NOT ${PROJECT_NAME}_NO_LIBRARY_VERSION)
	IF(MSVC)
		SET(TOOLKIT_RESOURCES ${CMAKE_BINARY_DIR}/Version.rc)
		ADD_DEFINITIONS("-D${PROJECT_NAME}_VERSION_INFO_IS_EXE")
	ENDIF(MSVC)
ENDIF(NOT ${PROJECT_NAME}_NO_LIBRARY_VERSION)

ADD_EXECUTABLE(${TOOLKIT_APP} ${TOOLKIT_APP_SOURCE_FILES} ${TOOLKIT_RESOURCES} )

SET_TARGET_PROPERTIES_INSTALL_RPATH(${TOOLKIT_APP} "${${PROJECT_NAME}_INSTALL_PREFIX}/${${PROJECT_NAME}_INSTALL_LIB_DIR};${${PROJECT_NAME}_INSTALL_PREFIX}/${${PROJECT_NAME}_INSTALL_PACKAGE_LIB_DIR}")

IF(WIN32 AND (CMAKE_CONFIGURATION_TYPES OR NMAKE))
	SET_TARGET_PROPERTIES(${TOOLKIT_APP} PROPERTIES
		DEBUG_OUTPUT_NAME ${TOOLKIT_APP}${CMAKE_DEBUG_POSTFIX}
	)
ENDIF(WIN32 AND (CMAKE_CONFIGURATION_TYPES OR NMAKE))

# Set dependencies for thit ToolKit
LIST(REMOVE_DUPLICATES TOOLKIT_APP_LIBS)
TARGET_LINK_LIBRARIES(${TOOLKIT_APP} ${TOOLKIT_APP_LIBS} ${WIN32_LIBS})

#  Those are private libraries
INSTALL(TARGETS ${TOOLKIT_APP}
	RUNTIME DESTINATION ${${PROJECT_NAME}_INSTALL_BIN_DIR}         COMPONENT RuntimeLibraries
	LIBRARY DESTINATION ${${PROJECT_NAME}_INSTALL_PACKAGE_LIB_DIR} COMPONENT RuntimeLibraries
	ARCHIVE DESTINATION ${${PROJECT_NAME}_INSTALL_PACKAGE_LIB_DIR} COMPONENT Development
)