11cmake_minimum_required (VERSION 3.14)
22
3- project (atta VERSION 0.3.6 LANGUAGES CXX C)
3+ project (atta VERSION 0.3.7 LANGUAGES CXX C)
44
55option (ATTA_BUILD_TESTS "Set to ON to build also the test executables" ON )
66option (ATTA_BUILD_DOCS "Build the documentation" OFF )
@@ -92,9 +92,11 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL Emscripten)#----- Web build
9292 endif ()
9393
9494 if (ATTA_STATIC_PROJECT_FILE)
95- # Copy project filee
95+ # Copy project file
9696 configure_file (${ATTA_STATIC_PROJECT_FILE} project/project.atta COPYONLY )
9797
98+ # Copy project resources
99+ # TODO it may fail if the resources are populated by the project CMakeLists.txt during the first build
98100 get_filename_component (projectDir ${ATTA_STATIC_PROJECT_FILE} DIRECTORY )
99101 if (EXISTS "${projectDir} /resources" )
100102 file (COPY "${projectDir} /resources" DESTINATION "project" )
@@ -222,10 +224,13 @@ if(ATTA_STATIC_PROJECT)
222224 set (ATTA_INSTALL_PCH ${ATTA_PCH} )
223225 configure_file (cmake/attaConfig.cmake.in "${CMAKE_CURRENT_BINARY_DIR} /attaConfig.cmake" @ONLY)
224226
227+ # Build static project and link it if CMakeLists.txt exists
225228 get_filename_component (projectDirectory ${ATTA_STATIC_PROJECT_FILE} DIRECTORY )
226- add_subdirectory (${projectDirectory} ${projectDirectory} /build )
227- # The project targets will are saved to ATTA_PROJECT_TARGETS (atta_add_target macro)
228- target_link_libraries (atta PUBLIC ${ATTA_PROJECT_TARGETS} )
229+ if (EXISTS "${projectDirectory} /CMakeLists.txt" )
230+ add_subdirectory (${projectDirectory} ${projectDirectory} /build )
231+ # The project targets will are saved to ATTA_PROJECT_TARGETS (atta_add_target macro)
232+ target_link_libraries (atta PUBLIC ${ATTA_PROJECT_TARGETS} )
233+ endif ()
229234
230235 # Populate ATTA_STATIC_PROJECT_SCRIPTS to write includes to scripts.h file
231236 set (ATTA_STATIC_PROJECT_SCRIPTS "" )
@@ -260,10 +265,10 @@ if(NOT (ATTA_SYSTEM_NAME MATCHES "Web") AND NOT ATTA_STATIC_PROJECT_FILE)
260265 PRIVATE_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /${ATTA_VERSION_SAFE}
261266 PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /${ATTA_VERSION_SAFE}
262267 )
263- # Install atta-X.X.X.X executable
268+ # Install atta-X.X.X executable
264269 install (FILES $<TARGET_FILE:atta> TYPE BIN RENAME ${ATTA_VERSION_SAFE} PERMISSIONS WORLD_EXECUTE)
265270
266- # Install atta_test-X.X.X.X executable
271+ # Install atta_test-X.X.X executable
267272 if (ATTA_BUILD_TESTS)
268273 install (TARGETS atta_test RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} )
269274 install (FILES $<TARGET_FILE:atta_test> TYPE BIN RENAME atta_test-${CMAKE_PROJECT_VERSION} PERMISSIONS WORLD_EXECUTE)
@@ -278,6 +283,8 @@ if(NOT (ATTA_SYSTEM_NAME MATCHES "Web") AND NOT ATTA_STATIC_PROJECT_FILE)
278283 FILES_MATCHING REGEX ".*\. (h|inl)$" )
279284 install (DIRECTORY ${CMAKE_BINARY_DIR} /_deps/implot-src/ DESTINATION include /${ATTA_VERSION_SAFE} /extern/implot
280285 FILES_MATCHING REGEX ".*\. (h|cpp)$" )
286+ install (DIRECTORY ${CMAKE_BINARY_DIR} /_deps/implot3d-src/ DESTINATION include /${ATTA_VERSION_SAFE} /extern/implot3d
287+ FILES_MATCHING REGEX ".*\. (h|cpp)$" )
281288 install (DIRECTORY ${CMAKE_BINARY_DIR} /_deps/bullet3-src/ DESTINATION include /${ATTA_VERSION_SAFE} /extern/bullet3
282289 FILES_MATCHING REGEX ".*\. (h|cpp)$" )
283290 install (DIRECTORY src/extern/glad/ DESTINATION include /${ATTA_VERSION_SAFE} /extern/glad
@@ -289,6 +296,7 @@ if(NOT (ATTA_SYSTEM_NAME MATCHES "Web") AND NOT ATTA_STATIC_PROJECT_FILE)
289296 list (APPEND ATTA_INSTALL_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX} /include /${ATTA_VERSION_SAFE} )
290297 list (APPEND ATTA_INSTALL_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX} /include /${ATTA_VERSION_SAFE} /extern/imgui)
291298 list (APPEND ATTA_INSTALL_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX} /include /${ATTA_VERSION_SAFE} /extern/implot)
299+ list (APPEND ATTA_INSTALL_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX} /include /${ATTA_VERSION_SAFE} /extern/implot3d)
292300 list (APPEND ATTA_INSTALL_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX} /include /${ATTA_VERSION_SAFE} /extern/bullet3/src)
293301 list (APPEND ATTA_INSTALL_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX} /include /${ATTA_VERSION_SAFE} /extern/glad/include )
294302 list (APPEND ATTA_INSTALL_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX} /include /${ATTA_VERSION_SAFE} /extern/stb_image)
0 commit comments