0029571: Samples: build qt samples together with OCCT
[occt.git] / samples / tools / TStandalone / adm / cmake / occt_toolkit_standalone.cmake
CommitLineData
14bbbdcb 1# script for each OCCT toolkit
2
3#Qt dependencies
4#message ("Project is ${PROJECT_NAME}")
5if (EXECUTABLE_PROJECT)
6 set (PACKAGE_PREFIX_DIR "samples/tools")
7 SET(SOURCE_DIR ${CMAKE_SOURCE_DIR}/../${PROJECT_NAME})
8 include_directories("${SOURCE_DIR}")
9 #message("Inc dir: ${CMAKE_SOURCE_DIR}/../${PROJECT_NAME}")
10else()
11 set (PACKAGE_PREFIX_DIR "tools")
12 SET(SOURCE_DIR ${CASROOT_SOURCE_FILES}/${PACKAGE_PREFIX_DIR}/${PROJECT_NAME})
13endif()
14
15FIND_SOURCES_AND_HEADERS_FILES(${SOURCE_DIR} SOURCE_FILES HEADER_FILES)
16
17#message ("Source dir is ${SOURCE_DIR}")
18#message ("Sources are ${SOURCE_FILES}")
19
20unset(RCC_FILES)
21if (USE_QT)
4f4b8935 22 FIND_QT_PACKAGE(PROJECT_LIBRARIES_DEBUG PROJECT_LIBRARIES_RELEASE PROJECT_INCLUDES)
14bbbdcb 23
24 FIND_AND_WRAP_MOC_FILES("${SOURCE_FILES}")
25 FIND_AND_WRAP_RESOURCE_FILE("${SOURCE_DIR}/${PROJECT_NAME}.qrc" RCC_FILES)
26
27endif()
28
29if (TOOLKIT_NAME)
30 set(TARGET_NAME TK${PROJECT_NAME})
31else ()
32 set(TARGET_NAME ${PROJECT_NAME})
33endif()
34
35if (EXECUTABLE_PROJECT)
36 add_executable (${TARGET_NAME} ${SOURCE_FILES} ${HEADER_FILES})
37else()
38 add_library(${TARGET_NAME} SHARED ${SOURCE_FILES} ${HEADER_FILES})
39endif()
40
41
42include_directories(
43 ${PROJECT_INCLUDES}
44 ${SOURCE_DIR}
45 ${3RDPARTY_OCCT_INCLUDE_DIR}
46 "${CMAKE_BINARY_DIR}/inc")
47
48add_definitions(-D__WIN32__)
49add_definitions(-DWNT)
1fa16152 50add_definitions(-D__${PROJECT_NAME}_DLL)
14bbbdcb 51
52# parce EXTERNLIB file
53FILE_TO_LIST ("src/${PROJECT_NAME}/EXTERNLIB" USED_EXTERNLIB_AND_TOOLKITS)
54foreach (USED_ITEM ${USED_EXTERNLIB_AND_TOOLKITS})
55 string (REGEX MATCH "^ *#" COMMENT_FOUND ${USED_ITEM})
56 if (NOT COMMENT_FOUND)
57 set (LIB_ITEM ${USED_ITEM})
58 set (LIB_PARSED_ITEM ${${USED_ITEM}})
59
60 if (LIB_PARSED_ITEM)
61 list (APPEND USED_TOOLKITS_BY_CURRENT_PROJECT ${${USED_ITEM}})
62 #message("Append external lib: ${${USED_ITEM}}")
63 else ()
64 list (APPEND USED_TOOLKITS_BY_CURRENT_PROJECT ${USED_ITEM})
65 #message("Append lib: ${USED_ITEM}")
66 endif()
67
68 endif()
69endforeach()
70
71
72target_link_libraries (${TARGET_NAME} ${USED_TOOLKITS_BY_CURRENT_PROJECT})
73
74if (USE_QT)
75 target_link_libraries (${TARGET_NAME} debug ${PROJECT_LIBRARIES_DEBUG})
76 target_link_libraries (${TARGET_NAME} optimized ${PROJECT_LIBRARIES_RELEASE})
77
78 if (NOT "${RCC_FILES}" STREQUAL "")
79 #message("RCC files: ${RCC_FILES}")
80 target_sources(${TARGET_NAME} PRIVATE ${RCC_FILES})
81 endif()
82endif()
83
84if (EXECUTABLE_PROJECT)
85 INSTALL(TARGETS ${TARGET_NAME} DESTINATION "${INSTALL_DIR_BIN}")
86else()
87 if (MSVC)
88 install (DIRECTORY ${PROJECT_BINARY_DIR}/Debug/
89 DESTINATION "${INSTALL_DIR_BIN}"
90 FILES_MATCHING PATTERN *.pdb)
91 if (INSTALL_API_DIR)
92 install (DIRECTORY ${PROJECT_BINARY_DIR}/Debug/
93 DESTINATION "${INSTALL_API_DIR}/bin"
94 FILES_MATCHING PATTERN *.pdb)
95 endif()
96 endif()
97 install (TARGETS ${TARGET_NAME}
98 RUNTIME DESTINATION "${INSTALL_DIR_BIN}"
99 ARCHIVE DESTINATION "${INSTALL_DIR_LIB}"
100 LIBRARY DESTINATION "${INSTALL_DIR_LIB}")
101
102 if (INSTALL_API_DIR)
103 install (TARGETS ${TARGET_NAME}
104 RUNTIME DESTINATION "${INSTALL_API_DIR}/bin")
105
106 if (INSTALL_API)
107 INSTALL(FILES ${HEADER_FILES} DESTINATION "${INSTALL_API_DIR}/${INSTALL_DIR_INCLUDE}")
108
109 install (DIRECTORY ${PROJECT_BINARY_DIR}/Debug/
110 DESTINATION "${INSTALL_API_DIR}/lib"
111 FILES_MATCHING PATTERN *.lib)
112 endif()
113 endif()
114
115endif()