sand/CMakeLists.txt

59 lines
1.2 KiB
CMake

cmake_minimum_required(VERSION 3.21)
project(sand LANGUAGES CXX HIP)
find_package(OpenMP)
find_package(PkgConfig REQUIRED)
pkg_check_modules(LUAJIT REQUIRED luajit)
add_library(sand STATIC
include/sand/sand.h
include/sand/type.h
include/sand/type_builder.h
include/sand/type_range.h
include/sand/rule.h
include/sand/rule_builder.h
src/type.cpp
src/type_builder.cpp
src/type_range.cpp
src/rule.cpp
src/rule_builder.cpp
src/sand.cpp
src/sand.hip
)
target_include_directories(sand PUBLIC include)
set_target_properties(sand PROPERTIES
CXX_STANDARD 20
CXX_STANDARD_REQUIRED ON
POSITION_INDEPENDENT_CODE ON
)
if(OpenMP_FOUND)
target_link_libraries(sand PRIVATE OpenMP::OpenMP_CXX)
endif()
if(EXISTS third/tracy/CMakeLists.txt)
add_subdirectory(third/tracy)
target_link_libraries(sand PUBLIC Tracy::TracyClient)
if(NOT TRACY_ENABLE)
target_compile_definitions(sand PUBLIC FrameMark ZoneScoped)
endif()
else()
target_compile_definitions(sand PUBLIC FrameMark ZoneScoped)
endif()
find_package(SDL3 CONFIG REQUIRED)
add_executable(sandtest
src/main.cpp
)
target_link_libraries(sandtest PRIVATE sand SDL3)
set_target_properties(sandtest PROPERTIES
CXX_STANDARD 20
CXX_STANDARD_REQUIRED ON
)