Skip to content

Commit

Permalink
[cmake] topaz_add_executable, topaz_add_library, topaz_add_demo and t…
Browse files Browse the repository at this point in the history
…opaz_add_test now support BUNDLE_FILES and DEFINE_PACKAGE. for now, tz_io_image_test defines a package for testing reasons
  • Loading branch information
harrand committed Oct 22, 2024
1 parent 97ab47d commit baf5b16
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 14 deletions.
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ include(cmake/topaz.cmake)
add_subdirectory(lib)
add_subdirectory(tools)
include(cmake/shader.cmake)
include(cmake/bundle.cmake)
include(cmake/package.cmake)

####################
## TOPAZ - TARGET ##
Expand Down Expand Up @@ -63,8 +65,6 @@ include(cmake/platform.cmake)
setup_platform()
include(cmake/render_api.cmake)
setup_render_api()
include(cmake/bundle.cmake)
include(cmake/package.cmake)

###################
## TOPAZ - TESTS ##
Expand Down
26 changes: 22 additions & 4 deletions cmake/topaz.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
function(topaz_add_library)
cmake_parse_arguments(
TOPAZ_ADD_LIBRARY
""
"DEFINE_PACKAGE"
"TARGET"
"SOURCES;SHADERS;TEXT_FILES"
"SOURCES;SHADERS;TEXT_FILES;BUNDLE_FILES"
${ARGN}
)

Expand All @@ -23,14 +23,23 @@ function(topaz_add_library)
OUTPUT_DIR ${PROJECT_BINARY_DIR}
TEXT_FILES ${TOPAZ_ADD_LIBRARY_TEXT_FILES}
)
if(TOPAZ_ADD_LIBRARY_BUNDLE_FILES)
topaz_bundle_files(
TARGET ${TOPAZ_ADD_LIBRARY_TARGET}
FILES ${TOPAZ_ADD_LIBRARY_BUNDLE_FILES}
)
endif()
if(TOPAZ_ADD_LIBRARY_DEFINE_PACKAGE)
topaz_define_package(TARGET ${TOPAZ_ADD_LIBRARY_TARGET})
endif()
endfunction()

function(topaz_add_executable)
cmake_parse_arguments(
TOPAZ_ADD_EXECUTABLE
""
"DEFINE_PACKAGE"
"TARGET"
"SOURCES;SHADERS;TEXT_FILES"
"SOURCES;SHADERS;TEXT_FILES;BUNDLE_FILES"
${ARGN}
)

Expand All @@ -48,4 +57,13 @@ function(topaz_add_executable)
OUTPUT_DIR ${PROJECT_BINARY_DIR}
TEXT_FILES ${TOPAZ_ADD_EXECUTABLE_TEXT_FILES}
)
if(TOPAZ_ADD_EXECUTABLE_BUNDLE_FILES)
topaz_bundle_files(
TARGET ${TOPAZ_ADD_EXECUTABLE_TARGET}
FILES ${TOPAZ_ADD_EXECUTABLE_BUNDLE_FILES}
)
endif()
if(TOPAZ_ADD_EXECUTABLE_DEFINE_PACKAGE)
topaz_define_package(TARGET ${TOPAZ_ADD_EXECUTABLE_TARGET})
endif()
endfunction()
9 changes: 7 additions & 2 deletions demo/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
function(topaz_add_demo)
cmake_parse_arguments(
TOPAZ_ADD_DEMO
""
"DEFINE_PACKAGE"
"TARGET"
"SOURCES;SHADERS;TEXT_FILES"
"SOURCES;SHADERS;TEXT_FILES;BUNDLE_FILES"
${ARGN}
)

Expand All @@ -15,7 +15,12 @@ function(topaz_add_demo)
${TOPAZ_ADD_DEMO_SHADERS}
TEXT_FILES
${TOPAZ_ADD_DEMO_TEXT_FILES}
BUNDLE_FILES
${TOPAZ_ADD_DEMO_BUNDLE_FILES}
)
if(TOPAZ_ADD_DEMO_DEFINE_PACKAGE)
topaz_define_package(TARGET ${TOPAZ_ADD_DEMO_TARGET})
endif()
# All demos link against topaz.
target_link_libraries(${TOPAZ_ADD_DEMO_TARGET} PRIVATE topaz)
endfunction()
Expand Down
9 changes: 7 additions & 2 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
function(topaz_add_test)
cmake_parse_arguments(
TOPAZ_ADD_TEST
""
"DEFINE_PACKAGE"
"TARGET"
"SOURCES;SHADERS;TEXT_FILES"
"SOURCES;SHADERS;TEXT_FILES;BUNDLE_FILES"
${ARGN}
)

Expand All @@ -15,7 +15,12 @@ function(topaz_add_test)
${TOPAZ_ADD_TEST_SHADERS}
TEXT_FILES
${TOPAZ_ADD_TEST_TEXT_FILES}
BUNDLE_FILES
${TOPAZ_ADD_TEST_BUNDLE_FILES}
)
if(TOPAZ_ADD_TEST_DEFINE_PACKAGE)
topaz_define_package(TARGET ${TOPAZ_ADD_TEST_TARGET})
endif()
# All tests link against topaz.
target_link_libraries(${TOPAZ_ADD_TEST_TARGET} PRIVATE topaz)
# Note: CTest only runs test executables, doesn't build them. This is of course unfathomably stupid - You have to use "fixtures" (see: https://crascit.com/2016/10/18/test-fixtures-with-cmake-ctest/)
Expand Down
6 changes: 2 additions & 4 deletions test/tz/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,10 @@ topaz_bundle_files(

topaz_add_test(
TARGET tz_io_image_test
DEFINE_PACKAGE
SOURCES
io_image_test.cpp
)
topaz_bundle_files(
TARGET tz_io_image_test
FILES
BUNDLE_FILES
files/img.png
)

Expand Down

0 comments on commit baf5b16

Please sign in to comment.