From a5dff947d9d82a3242651028d2d89e540c73486e Mon Sep 17 00:00:00 2001 From: Sander Speetjens Date: Tue, 6 Jan 2026 20:59:50 +0100 Subject: [PATCH] examples playground exclude when used as a submodule --- examples/CMakeLists.txt | 52 ++++++++++++++++++++------------------ playground/CMakeLists.txt | 53 ++++++++++++++++++++------------------- 2 files changed, 54 insertions(+), 51 deletions(-) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index e006ba1..de6d5df 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,34 +1,36 @@ find_package(Qt6 REQUIRED COMPONENTS Widgets) file(GLOB SUBDIRS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/*") -foreach(SUBDIR ${SUBDIRS}) - if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}) - file(GLOB SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/*.h") +if (PROJECT_IS_TOP_LEVEL) + foreach(SUBDIR ${SUBDIRS}) + if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}) + file(GLOB SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/*.h") - if(SOURCES) - add_executable(${SUBDIR} ${SOURCES}) + if(SOURCES) + add_executable(${SUBDIR} ${SOURCES}) - target_include_directories(${SUBDIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR} ${PROJECT_BINARY_DIR}/) + target_include_directories(${SUBDIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR} ${PROJECT_BINARY_DIR}/) - target_compile_definitions(${SUBDIR} - PRIVATE - "QWT_MOC_INCLUDE" - ) - - set_target_properties( - ${SUBDIR} - PROPERTIES - AUTOMOC ON - ) - - target_link_libraries(${SUBDIR} qwt Qt${QT_VERSION_MAJOR}::Widgets) - - if(NOT QWT_BUILD_EXAMPLES) - set_target_properties(${SUBDIR} PROPERTIES - EXCLUDE_FROM_ALL TRUE - EXCLUDE_FROM_DEFAULT_BUILD TRUE # mainly for Visual Studio + target_compile_definitions(${SUBDIR} + PRIVATE + "QWT_MOC_INCLUDE" ) + + set_target_properties( + ${SUBDIR} + PROPERTIES + AUTOMOC ON + ) + + target_link_libraries(${SUBDIR} qwt Qt${QT_VERSION_MAJOR}::Widgets) + + if(NOT QWT_BUILD_EXAMPLES) + set_target_properties(${SUBDIR} PROPERTIES + EXCLUDE_FROM_ALL TRUE + EXCLUDE_FROM_DEFAULT_BUILD TRUE # mainly for Visual Studio + ) + endif() endif() endif() - endif() -endforeach() + endforeach() +endif() \ No newline at end of file diff --git a/playground/CMakeLists.txt b/playground/CMakeLists.txt index d7ee30e..8baaa89 100644 --- a/playground/CMakeLists.txt +++ b/playground/CMakeLists.txt @@ -1,33 +1,34 @@ file(GLOB SUBDIRS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/*") +if (PROJECT_IS_TOP_LEVEL) + foreach(SUBDIR ${SUBDIRS}) + if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}) + file(GLOB SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/*.h") -foreach(SUBDIR ${SUBDIRS}) - if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}) - file(GLOB SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/*.h") + if(SOURCES) + add_executable(${SUBDIR} ${SOURCES}) - if(SOURCES) - add_executable(${SUBDIR} ${SOURCES}) + target_include_directories(${SUBDIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR} ${PROJECT_BINARY_DIR}/) - target_include_directories(${SUBDIR} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR} ${PROJECT_BINARY_DIR}/) - - target_compile_definitions(${SUBDIR} - PRIVATE - "QWT_MOC_INCLUDE" - ) - - set_target_properties( - ${SUBDIR} - PROPERTIES - AUTOMOC ON - ) - - target_link_libraries(${SUBDIR} qwt) - - if(NOT QWT_BUILD_PLAYGROUND) - set_target_properties(${SUBDIR} PROPERTIES - EXCLUDE_FROM_ALL TRUE - EXCLUDE_FROM_DEFAULT_BUILD TRUE # mainly for Visual Studio + target_compile_definitions(${SUBDIR} + PRIVATE + "QWT_MOC_INCLUDE" ) + + set_target_properties( + ${SUBDIR} + PROPERTIES + AUTOMOC ON + ) + + target_link_libraries(${SUBDIR} qwt) + + if(NOT QWT_BUILD_PLAYGROUND) + set_target_properties(${SUBDIR} PROPERTIES + EXCLUDE_FROM_ALL TRUE + EXCLUDE_FROM_DEFAULT_BUILD TRUE # mainly for Visual Studio + ) + endif() endif() endif() - endif() -endforeach() + endforeach() +endif() \ No newline at end of file