59 lines
1.2 KiB
CMake
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
|
|
)
|