diff options
Diffstat (limited to 'core/CMakeLists.txt')
-rw-r--r-- | core/CMakeLists.txt | 53 |
1 files changed, 35 insertions, 18 deletions
diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index 320a5de..e8abe5b 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -24,13 +24,12 @@ endfunction() set(ENTRYPOINT_MODULE_SOURCES src/Entrypoint/main.cpp - src/Entrypoint/Common.cpp - src/Entrypoint/OpenGL2.cpp - src/Entrypoint/OpenGL3.cpp - src/Entrypoint/Vulkan.cpp - src/Entrypoint/DirectX11.cpp - src/Entrypoint/DirectX12.cpp - src/Entrypoint/Metal.mm + src/Entrypoint/Backend_OpenGL2.cpp + src/Entrypoint/Backend_OpenGL3.cpp + src/Entrypoint/Backend_Vulkan.cpp + src/Entrypoint/Backend_DirectX11.cpp + src/Entrypoint/Backend_DirectX12.cpp + src/Entrypoint/Backend_Metal.mm ) add_source_group(MODEL_MODULE_SOURCES @@ -61,12 +60,27 @@ add_source_group(UTILS_MODULE_SOURCES function(add_executable_variant TARGET_NAME) message("CpltCore: generating executable ${TARGET_NAME}") + if(BUILD_CORE_WITH_OPENGL2_BACKEND OR + BUILD_CORE_WITH_OPENGL3_BACKEND OR + BUILD_CORE_WITH_VULKAN_BACKEND OR + BUILD_CORE_WITH_METAL_BACKEND) + list(APPEND IMGUI_BACKEND_SOURCES + ${CMAKE_SOURCE_DIR}/3rdparty/imgui/backend/imgui_impl_glfw.cpp + ) + endif() + if(BUILD_CORE_WITH_DX11_BACKEND OR BUILD_CORE_WITH_DX12_BACKEND) + list(APPEND IMGUI_BACKEND_SOURCES + ${CMAKE_SOURCE_DIR}/3rdparty/imgui/backend/imgui_impl_win32.cpp + ) + endif() + add_executable(${TARGET_NAME} ${ENTRYPOINT_MODULE_SOURCES} ${MODEL_MODULE_SOURCES} ${UI_MODULE_SOURCES} ${UTILS_MODULE_SOURCES} ${UTILS_DIALOG_MODULE_SOURCES} + ${IMGUI_BACKEND_SOURCES} ) target_include_directories(${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_LIST_DIR}/src @@ -95,12 +109,13 @@ function(add_executable_variant TARGET_NAME) BUILD_CORE_WITH_DX11_BACKEND=$<BOOL:${BUILD_CORE_WITH_DX11_BACKEND}> BUILD_CORE_WITH_DX12_BACKEND=$<BOOL:${BUILD_CORE_WITH_DX12_BACKEND}> ) - else() - target_compile_definitions(${TARGET_NAME} - PRIVATE - BUILD_CORE_WITH_DX11_BACKEND=0 - BUILD_CORE_WITH_DX12_BACKEND=0 - ) + + if(BUILD_CORE_WITH_DX11_BACKEND) + target_link_libraries(${TARGET_NAME} PRIVATE dxgi.lib d3d11.lib) + endif() + if(BUILD_CORE_WITH_DX12_BACKEND) + target_link_libraries(${TARGET_NAME} PRIVATE dxgi.lib d3d12.lib) + endif() endif() if(APPLE) @@ -109,11 +124,6 @@ function(add_executable_variant TARGET_NAME) PRIVATE BUILD_CORE_WITH_METAL_BACKEND=$<BOOL:${BUILD_CORE_WITH_METAL_BACKEND}> ) - else() - target_compile_definitions(${TARGET_NAME} - PRIVATE - BUILD_CORE_WITH_METAL_BACKEND=0 - ) endif() if(NOT APPLE) @@ -126,6 +136,13 @@ function(add_executable_variant TARGET_NAME) BUILD_CORE_WITH_OPENGL3_BACKEND=$<BOOL:${BUILD_CORE_WITH_OPENGL3_BACKEND}> BUILD_CORE_WITH_VULKAN_BACKEND=$<BOOL:${BUILD_CORE_WITH_VULKAN_BACKEND}> ) + + # TODO conditionally add opengl libraries + if(BUILD_CORE_WITH_VULKAN_BACKEND) + find_package(Vulkan REQUIRED FATAL_ERROR) + target_include_directories(${TARGET_NAME} PRIVATE ${Vulkan_INCLUDE_DIRS}) + target_link_libraries(${TARGET_NAME} PRIVATE ${Vulkan_LIBRARIES}) + endif() endif() # Platform specific dependencies for Utils/Dialog, not covered by conan |