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})