1 # Get all used packages from toolkit
2 foreach (MODULE ${TOOLKIT_MODULES})
4 list (APPEND PRECOMPILED_DEFS "-D__${MODULE}_DLL")
6 list (APPEND COMPILER_DIRECTORIES "${OCCT_SOURCE_DIR}/src/${MODULE}")
8 string (REGEX REPLACE ";" " " PRECOMPILED_DEFS "${PRECOMPILED_DEFS}")
10 # Get from toolkits EXTERNLIB all used libs
11 OCCT_TOOLKIT_DEP (${PROJECT_NAME} ${PROJECT_NAME}_DEPS)
12 foreach (DEP ${${PROJECT_NAME}_DEPS})
13 IS_OCCT_TOOLKIT (${DEP} OCCT_MODULES FOUND_TOOLKIT)
14 if ("${FOUND_TOOLKIT}" STREQUAL "ON")
15 list ( APPEND USED_LIBS "${DEP}" )
19 # Get all source files from used packages
20 foreach (CDIR ${COMPILER_DIRECTORIES})
21 get_filename_component (CDirName ${CDIR} NAME)
23 file (STRINGS "${CDIR}/FILES" FLEX_Files REGEX ".+[.]lex")
24 file (STRINGS "${CDIR}/FILES" BISON_Files REGEX ".+[.]yacc")
25 file (STRINGS "${CDIR}/FILES" CFiles REGEX ".+[.]c")
26 file (STRINGS "${CDIR}/FILES" MFiles REGEX ".+[.]mm")
28 # Generate Flex and Bison files
29 if (${BUILD_BISON_FLEX_FILES})
30 list (LENGTH FLEX_Files FLength)
31 list (LENGTH BISON_Files BLength)
32 list (SORT FLEX_Files)
33 list (SORT BISON_Files)
34 if (${FLength} EQUAL ${BLength} AND NOT ${FLength} EQUAL 0)
35 math (EXPR FLength "${FLength} - 1")
36 foreach (FileIndex RANGE ${FLength})
37 list (GET FLEX_Files ${FileIndex} FLEX_File)
38 list (GET BISON_Files ${FileIndex} BISON_File)
39 get_filename_component (FLEX_Name ${FLEX_File} NAME_WE)
40 get_filename_component (BISON_Name ${BISON_File} NAME_WE)
41 string (COMPARE EQUAL ${FLEX_Name} ${BISON_Name} isEQUAL)
42 if (EXISTS "${FLEX_File}" AND EXISTS "${BISON_File}" AND ${isEQUAL})
43 BISON_TARGET (Parser_${BISON_Name} ${BISON_File} ${CDIR}/${BISON_Name}.tab.c)
44 FLEX_TARGET (Scanner_${FLEX_Name} ${FLEX_File} ${CDIR}/lex.${FLEX_Name}.c)
45 ADD_FLEX_BISON_DEPENDENCY (Scanner_${FLEX_Name} Parser_${BISON_Name})
46 list (APPEND CDIR_files ${BISON_Parser_${BISON_Name}_OUTPUTS} ${FLEX_Scanner_${FLEX_Name}_OUTPUTS})
52 list (APPEND CDIR_files ${CFiles})
54 list ( APPEND CDIR_files ${MFiles})
57 foreach (CFile ${CDIR_files})
58 list (APPEND USED_SRCFILES ${CDIR}/${CFile} )
59 SOURCE_GROUP (${CDirName} FILES ${CDIR}/${CFile})
63 list (FIND USED_TOOLKITS ${PROJECT_NAME} isFOUND)
65 OCCT_MAKE_BUILD_POSTFIX()
67 # Create project for toolkit
68 if ("${USED_TOOLKITS}" STREQUAL "" OR NOT ${isFOUND} EQUAL -1)
69 foreach (MODULE ${OCCT_MODULES})
70 list (FIND ${MODULE}_TOOLKITS ${PROJECT_NAME} isFOUND)
71 if (NOT ${isFOUND} EQUAL -1)
72 set (CURRENT_MODULE ${MODULE})
76 add_executable (${PROJECT_NAME} ${USED_SRCFILES})
77 install (TARGETS ${PROJECT_NAME} DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/bin${BUILD_POSTFIX}")
79 add_library (${PROJECT_NAME} ${USED_SRCFILES})
80 install (TARGETS ${PROJECT_NAME}
81 RUNTIME DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/bin${BUILD_POSTFIX}"
82 ARCHIVE DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/lib${BUILD_POSTFIX}"
83 LIBRARY DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/lib${BUILD_POSTFIX}")
85 install (FILES ${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin${BUILD_POSTFIX}/${PROJECT_NAME}.pdb
87 DESTINATION "${INSTALL_DIR}/${OS_WITH_BIT}/${COMPILER}/bin${BUILD_POSTFIX}")
91 set_property (TARGET ${PROJECT_NAME} PROPERTY FOLDER "Modules/${CURRENT_MODULE}")
92 set_target_properties (${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${PRECOMPILED_DEFS}")
93 target_link_libraries (${PROJECT_NAME} ${USED_LIBS})