54 lines
2.1 KiB
CMake
54 lines
2.1 KiB
CMake
set(TARGET_NAME ${PROJECT_NAME})
|
|
message(STATUS "Configuring ${TARGET_NAME}")
|
|
|
|
# Build configuration
|
|
|
|
configure_file(
|
|
${CMAKE_CURRENT_LIST_DIR}/Version.h.in
|
|
${CMAKE_CURRENT_LIST_DIR}/Version.h)
|
|
|
|
set(${PROJECT_NAME}_SOURCES "main.cpp")
|
|
set(${PROJECT_NAME}_INCLUDES "Version.h")
|
|
set(${PROJECT_NAME}_INCLUDE_DIRS "")
|
|
set(${PROJECT_NAME}_DEPENDENCIES "")
|
|
|
|
# Find all subdirectories
|
|
set(SUBDIRS_LIST "")
|
|
SubDirList(${CMAKE_CURRENT_LIST_DIR} SUBDIRS_LIST)
|
|
|
|
foreach(SUBDIR IN LISTS SUBDIRS_LIST)
|
|
if (NOT ${PROJECT_NAME}_BUILD_SUBDIR_${SUBDIR})
|
|
option(${PROJECT_NAME}_BUILD_SUBDIR_${SUBDIR} "Build ${SUBDIR} subdirectory" ON)
|
|
endif()
|
|
if(${PROJECT_NAME}_BUILD_SUBDIR_${SUBDIR})
|
|
file(GLOB SUBDIR_SOURCES ${CMAKE_CURRENT_LIST_DIR}/${SUBDIR}/*.cc ${CMAKE_CURRENT_LIST_DIR}/${SUBDIR}/*.cpp)
|
|
list(APPEND ${PROJECT_NAME}_SOURCES ${SUBDIR_SOURCES})
|
|
file(GLOB SUBDIR_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/${SUBDIR}/*.h)
|
|
list(APPEND ${PROJECT_NAME}_INCLUDES ${SUBDIR_INCLUDES})
|
|
list(APPEND ${PROJECT_NAME}_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/${SUBDIR})
|
|
endif()
|
|
endforeach()
|
|
|
|
add_executable(${TARGET_NAME} ${${PROJECT_NAME}_SOURCES} ${${PROJECT_NAME}_INCLUDES})
|
|
if(NOT ${${PROJECT_NAME}_DEPENDENCIES})
|
|
add_dependencies(${TARGET_NAME} ${${PROJECT_NAME}_DEPENDENCIES})
|
|
target_link_libraries(${TARGET_NAME} ${${PROJECT_NAME}_DEPENDENCIES})
|
|
endif()
|
|
|
|
#include_directories(${CMAKE_CURRENT_LIST_DIR})
|
|
#target_include_directories(${TARGET_NAME} PUBLIC ${CMAKE_CURRENT_LIST_DIR})
|
|
|
|
install(TARGETS ${TARGET_NAME}
|
|
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${TARGET_NAME}/
|
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${TARGET_NAME}/
|
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_SHAREDSTATEDIR})
|
|
|
|
message(STATUS "")
|
|
message(STATUS "${TARGET_NAME} summary")
|
|
message(STATUS "")
|
|
foreach(SUBDIR IN LISTS SUBDIRS_LIST)
|
|
message(STATUS "Build subdirectory ${SUBDIR}: \t \t ${${PROJECT_NAME}_BUILD_SUBDIR_${SUBDIR}}")
|
|
endforeach()
|
|
message(STATUS "") |