1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- macro(ctkMacroInitProject test)
- # Extract current directory name to use as project name
- #file(GLOB CUR_FILE "CMakeLists.txt")
- #get_filename_component(CUR_ABSOLUTE_DIR ${CUR_FILE} PATH)
- #get_filename_component(DIR_NAME ${CUR_ABSOLUTE_DIR} NAME)
- #project(${DIR_NAME})
- file(GLOB include_file_list "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
- file(GLOB implementation_file_list "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
- file(GLOB templete_file_list1 "${CMAKE_CURRENT_SOURCE_DIR}/*.txx")
- file(GLOB templete_file_list2 "${CMAKE_CURRENT_SOURCE_DIR}/*.tpp")
- file(GLOB resource_file_list "${CMAKE_CURRENT_SOURCE_DIR}/*.qrc")
- file(GLOB ui_file_list "${CMAKE_CURRENT_SOURCE_DIR}/*.ui")
- # Set your list of sources here.
- set(PROJECT_SRCS
- ${implementation_file_list}
- ${include_file_list}
- ${templete_file_list1}
- ${templete_file_list2}
- ${ui_file_list}
- ${resource_file_list}
- )
- ## Add the project binary dir as include dir for the .moc files.
- include_directories("${CMAKE_CURRENT_BINARY_DIR}")
- set(MY_MOC_CXX )
- if(${test})
- ## Moc the tests:
- foreach(FILE_NAME_ABS ${implementation_file_list})
- ## extract the base file name.
- get_filename_component(FILE_NAME ${FILE_NAME_ABS} NAME_WE)
- ## Exclude the main.cpp file (it doesn't ned to be 'mocced')
- if(NOT ${FILE_NAME} STREQUAL "main")
- ## Assign the moc custom filename
- set(MOC_FILE "${FILE_NAME}.moc")
- if (CTK_QT_VERSION VERSION_GREATER "4")
- QT5_GENERATE_MOC(${FILE_NAME_ABS} ${MOC_FILE})
- else()
- QT4_GENERATE_MOC(${FILE_NAME_ABS} ${MOC_FILE})
- endif()
- list(APPEND MY_MOC_CXX "${CMAKE_CURRENT_BINARY_DIR}/${MOC_FILE}")
- endif()
- endforeach()
- else()
- ## Moc the library's .h files
- if (CTK_QT_VERSION VERSION_GREATER "4")
- QT5_WRAP_CPP(MY_MOC_CXX ${include_file_list})
- QT5_WRAP_UI(MY_UI_CXX ${ui_file_list})
- #QT5_ADD_RESOURCES(MY_RESOURCE_CXX ${resource_file_list})
- else()
- QT4_WRAP_CPP(MY_MOC_CXX ${include_file_list})
- QT4_WRAP_UI(MY_UI_CXX ${ui_file_list})
- #QT4_ADD_RESOURCES(MY_RESOURCE_CXX ${resource_file_list})
- endif()
- endif()
- set(PROJECT_SRCS
- ${PROJECT_SRCS}
- ${MY_MOC_CXX}
- ${MY_UI_CXX}
- ${resource_file_list}
- )
- # List libraries that are needed by this project.
- ctkFunctionGetTargetLibraries(dependency_libraries)
- set(PROJECT_LIBS ${dependency_libraries})
- endmacro()
- set(test_executable ${PROJECT_NAME}CppTests)
- ctkMacroInitproject(1)
- add_executable(${test_executable} ${PROJECT_SRCS})
- target_link_libraries(${test_executable} ${PROJECT_LIBS})
- add_test(${PROJECT_NAME}Tests ${CPP_TEST_PATH}/${test_executable})
- #link_libraries(${PROJECT_LIBS})
|