-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
51 lines (45 loc) · 2.05 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
cmake_minimum_required(VERSION 3.21)
project(tenebris)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
add_executable( ${PROJECT_NAME}
"source/main.cpp"
"source/application.cpp"
"source/camera.cpp"
"source/gui_manager.cpp"
"source/renderer/renderer.cpp"
"source/terrain_gen/planet_generator.cpp"
"source/renderer/texture_manager/texture_manager.cpp"
"source/renderer/texture_manager/load_format_exr.cpp"
"source/renderer/texture_manager/load_format_dds.cpp")
find_package(daxa CONFIG REQUIRED)
find_package(glm CONFIG REQUIRED)
find_package(glfw3 CONFIG REQUIRED)
find_package(imgui CONFIG REQUIRED)
find_package(OpenEXR CONFIG REQUIRED)
find_package(nlohmann_json CONFIG REQUIRED)
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20)
message("${CMAKE_SYSTEM_NAME} - ${CMAKE_CXX_COMPILER_ID}")
if(CMAKE_SYSTEM_NAME MATCHES "Windows" AND CMAKE_CXX_COMPILER_ID MATCHES "Clang")
message("Hack disabling interface compiler options on OpenEXR targets for clang to work")
set_target_properties(OpenEXR::Iex PROPERTIES INTERFACE_COMPILE_OPTIONS "")
set_target_properties(OpenEXR::IlmThread PROPERTIES INTERFACE_COMPILE_OPTIONS "")
set_target_properties(OpenEXR::OpenEXR PROPERTIES INTERFACE_COMPILE_OPTIONS "")
set_target_properties(OpenEXR::OpenEXRCore PROPERTIES INTERFACE_COMPILE_OPTIONS "")
set_target_properties(OpenEXR::OpenEXRUtil PROPERTIES INTERFACE_COMPILE_OPTIONS "")
set_target_properties(Imath::Imath PROPERTIES INTERFACE_COMPILE_OPTIONS "")
endif()
target_include_directories(${PROJECT_NAME} PRIVATE "external/")
target_link_libraries(${PROJECT_NAME} PRIVATE
imgui::imgui
nlohmann_json::nlohmann_json
daxa::daxa
OpenEXR::OpenEXR
glm::glm
glfw
)
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
target_link_libraries(${PROJECT_NAME} PRIVATE Dwmapi)
endif()
# Debug mode defines
target_compile_definitions(${PROJECT_NAME} PRIVATE "$<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:LOG_DEBUG>")
target_compile_definitions(${PROJECT_NAME} PRIVATE "$<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:__DEBUG__>")