Renderer/CMakeLists.txt
austin 23999d56f4
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit
jenkins update
2024-12-02 18:58:16 -05:00

60 lines
1.7 KiB
CMake

cmake_minimum_required(VERSION 3.20.0)
project(StormEngine VERSION 0.1.0 LANGUAGES C)
# Find sources
file(GLOB_RECURSE SOURCES src/fluid/src/**.c)
# include header files
include_directories(src/fluid/includes)
# include jni
set(JAVA_AWT_LIBRARY NotNeeded)
# /usr/lib/jvm/java-17-openjdk-amd64/include
find_package(JNI REQUIRED)
include_directories(${JNI_INCLUDE_DIRS})
# Create shared library
add_library(StormEngine SHARED ${SOURCES})
# set props for the lib
target_compile_options(StormEngine PRIVATE -m64 -mavx -mavx2)
set_target_properties(StormEngine PROPERTIES
CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/shared-folder
)
# include and enable testing
include(CTest)
enable_testing()
# emit test driver to outdir
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/out/build/default)
# Grab test files
file(GLOB_RECURSE TEST_FILES ${CMAKE_SOURCE_DIR}/test/c/**.c)
set(TEST_DRIVER test_driver.c)
# preprocess the test files to use relative paths
set(TEST_SOURCES "")
foreach(TEST_FILE ${TEST_FILES})
file(RELATIVE_PATH REL_TEST_FILE ${CMAKE_SOURCE_DIR} ${TEST_FILE})
# get_filename_component (TEST_NAME ${TEST_FILE} NAME)
list(APPEND TEST_SOURCES ${REL_TEST_FILE})
endforeach()
# Add test sources
create_test_sourcelist(TEST_SOURCE_LIST ${TEST_DRIVER} ${TEST_SOURCES})
# Create test executable
add_executable(test_runner ${TEST_SOURCE_LIST})
# link the library to the test executable
target_link_libraries(test_runner StormEngine)
# add tests for each test source file
foreach (TEST_FILE ${TEST_SOURCES})
get_filename_component (TEST_NAME ${TEST_FILE} NAME_WE)
get_filename_component (TEST_PATH ${TEST_FILE} DIRECTORY)
add_test(NAME ${TEST_NAME} COMMAND test_runner ${TEST_PATH}/${TEST_NAME})
endforeach ()