aboutsummaryrefslogtreecommitdiff
path: root/core/CMakeLists.txt
diff options
context:
space:
mode:
authorrtk0c <[email protected]>2021-04-10 21:13:34 -0700
committerrtk0c <[email protected]>2021-04-10 21:13:34 -0700
commit568fcc1dfe40c37b57b7baa2dea93b291d3fa956 (patch)
tree826b410c502a950c1d4804d351959da914003b36 /core/CMakeLists.txt
parent4303d0be47526b35e5bb3e3be001da227dae5d96 (diff)
Add dx11, dx12, and vulkan backends
Diffstat (limited to 'core/CMakeLists.txt')
-rw-r--r--core/CMakeLists.txt53
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