Files
esDashboard/srcs/CMakeLists.txt
T
2025-12-19 20:08:22 +00:00

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