diff --git a/CMakeLists.txt b/CMakeLists.txt index 16af0b52d0..e37a749597 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -87,21 +87,16 @@ vsg_add_target_docs( ${VSG_SOURCE_DIR}/include/vsg ) -# only provide custom targets if not building as a submodule/FetchContent -if (${CMAKE_CURRENT_BINARY_DIR} STREQUAL ${CMAKE_SOURCE_DIR}) - - # automatically buil_all_h build target to generate the include/vsg/all.h from the headers in the include/vsg/* directories - add_custom_target(build_all_h - COMMAND ${CMAKE_COMMAND} -P ${VSG_SOURCE_DIR}/cmake/build_all_h.cmake - ) - set_target_properties(build_all_h PROPERTIES FOLDER "VulkanSceneGraph") - - vsg_add_option_maintainer( - PREFIX VulkanSceneGraph - RCLEVEL ${VSG_RELEASE_CANDIDATE} - ) +# automatically buil_all_h build target to generate the include/vsg/all.h from the headers in the include/vsg/* directories +add_custom_target(build_all_h + COMMAND ${CMAKE_COMMAND} -DVSG_SOURCE_DIR=${VSG_SOURCE_DIR} -P ${VSG_SOURCE_DIR}/cmake/build_all_h.cmake +) +set_target_properties(build_all_h PROPERTIES FOLDER "VulkanSceneGraph") -endif() +vsg_add_option_maintainer( + PREFIX VulkanSceneGraph + RCLEVEL ${VSG_RELEASE_CANDIDATE} +) # # src directory contains all the source of the vsg library diff --git a/cmake/build_all_h.cmake b/cmake/build_all_h.cmake index 6d686f8961..959b5de2a5 100644 --- a/cmake/build_all_h.cmake +++ b/cmake/build_all_h.cmake @@ -9,24 +9,24 @@ endmacro() macro(BUILD_ALL_H) - set(INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include) - - file(GLOB CORE_HEADERS RELATIVE ${INCLUDE_DIR} ${INCLUDE_DIR}/vsg/core/*.h ) - file(GLOB MATHS_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/include include/vsg/maths/*.h ) - file(GLOB NODES_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/include include/vsg/nodes/*.h ) - file(GLOB THREADING_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/include include/vsg/threading/*.h ) - file(GLOB UI_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/include include/vsg/ui/*.h ) - file(GLOB UTILS_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/include include/vsg/utils/*.h ) - file(GLOB APP_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/include include/vsg/app/*.h ) - file(GLOB IO_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/include include/vsg/io/*.h ) - file(GLOB VK_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/include include/vsg/vk/*.h ) - file(GLOB COMMANDS_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/include include/vsg/commands/*.h ) - file(GLOB STATE_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/include include/vsg/state/*.h ) - file(GLOB TEXT_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/include include/vsg/text/*.h ) - file(GLOB RAYTRACING_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/include include/vsg/raytracing/*.h ) - file(GLOB RTX_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/include include/vsg/rtx/*.h ) - - file(READ ${CMAKE_CURRENT_SOURCE_DIR}/cmake/header_license_preamble.txt ALL_H_CONTENTS) + set(INCLUDE_DIR ${VSG_SOURCE_DIR}/include) + + file(GLOB CORE_HEADERS RELATIVE ${INCLUDE_DIR} ${INCLUDE_DIR}/vsg/core/*.h RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/include/vsg/core/*.h ) + file(GLOB MATHS_HEADERS RELATIVE ${INCLUDE_DIR} ${INCLUDE_DIR}/vsg/maths/*.h ) + file(GLOB NODES_HEADERS RELATIVE ${INCLUDE_DIR} ${INCLUDE_DIR}/vsg/nodes/*.h ) + file(GLOB THREADING_HEADERS RELATIVE ${INCLUDE_DIR} ${INCLUDE_DIR}/vsg/threading/*.h ) + file(GLOB UI_HEADERS RELATIVE ${INCLUDE_DIR} ${INCLUDE_DIR}/vsg/ui/*.h ) + file(GLOB UTILS_HEADERS RELATIVE ${INCLUDE_DIR} ${INCLUDE_DIR}/vsg/utils/*.h ) + file(GLOB APP_HEADERS RELATIVE ${INCLUDE_DIR} ${INCLUDE_DIR}/vsg/app/*.h ) + file(GLOB IO_HEADERS RELATIVE ${INCLUDE_DIR} ${INCLUDE_DIR}/vsg/io/*.h ) + file(GLOB VK_HEADERS RELATIVE ${INCLUDE_DIR} ${INCLUDE_DIR}/vsg/vk/*.h ) + file(GLOB COMMANDS_HEADERS RELATIVE ${INCLUDE_DIR} ${INCLUDE_DIR}/vsg/commands/*.h ) + file(GLOB STATE_HEADERS RELATIVE ${INCLUDE_DIR} ${INCLUDE_DIR}/vsg/state/*.h ) + file(GLOB TEXT_HEADERS RELATIVE ${INCLUDE_DIR} ${INCLUDE_DIR}/vsg/text/*.h ) + file(GLOB RAYTRACING_HEADERS RELATIVE ${INCLUDE_DIR} ${INCLUDE_DIR}/vsg/raytracing/*.h ) + file(GLOB RTX_HEADERS RELATIVE ${INCLUDE_DIR} ${INCLUDE_DIR}/vsg/rtx/*.h ) + + file(READ ${VSG_SOURCE_DIR}/cmake/header_license_preamble.txt ALL_H_CONTENTS) APPEND_INCLUDES(ALL_H_CONTENTS CORE_HEADERS "// Core header files\n") APPEND_INCLUDES(ALL_H_CONTENTS MATHS_HEADERS "// Maths header files\n") APPEND_INCLUDES(ALL_H_CONTENTS NODES_HEADERS "// Node header files\n") @@ -42,7 +42,7 @@ macro(BUILD_ALL_H) APPEND_INCLUDES(ALL_H_CONTENTS RAYTRACING_HEADERS "// Ray tracing header files\n") APPEND_INCLUDES(ALL_H_CONTENTS RTX_HEADERS "// RTX mesh header files\n") - file(WRITE include/vsg/all.h ${ALL_H_CONTENTS}) + file(WRITE ${INCLUDE_DIR}/vsg/all.h ${ALL_H_CONTENTS}) endmacro()