diff options
author | rtk0c <[email protected]> | 2021-03-28 13:24:52 -0700 |
---|---|---|
committer | rtk0c <[email protected]> | 2021-03-28 13:24:52 -0700 |
commit | bdcc81822adddf2c6ad7f10d9e090d913475c1e0 (patch) | |
tree | 91997b21958992f4e9e48839166ea4feaa0712b1 /core/CMakeLists.txt | |
parent | 442d2d75d71bbc057e667edc301a79fa1cc813be (diff) |
Initial code structure
Diffstat (limited to 'core/CMakeLists.txt')
-rw-r--r-- | core/CMakeLists.txt | 60 |
1 files changed, 51 insertions, 9 deletions
diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index f2077a3..0eb4900 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -1,6 +1,6 @@ -project(CpltCore LANGUAGES CXX) -set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_STANDARD_REQUIRED ON) +option(BUILD_CORE_WITH_UNITY_BUILD OFF) +option(BUILD_CORE_MAIN "Whether to compile the main executable or not." ON) +option(BUILD_CORE_TESTS "Whether to compile the tests executable or not." OFF) function(add_source_group GROUP_NAME GROUP_SOURCES) set(${GROUP_NAME} ${GROUP_SOURCES}) @@ -11,9 +11,26 @@ function(add_source_group GROUP_NAME GROUP_SOURCES) endfunction() set(ENTRYPOINT_MODULE_SOURCES + src/Entrypoint/main.cpp + src/Entrypoint/Common.hpp + src/Entrypoint/Common.cpp + src/Entrypoint/OpenGL2.hpp + src/Entrypoint/OpenGL2.cpp + src/Entrypoint/OpenGL3.hpp + src/Entrypoint/OpenGL3.cpp + src/Entrypoint/Vulkan.hpp + src/Entrypoint/Vulkan.cpp + src/Entrypoint/DirectX11.hpp + src/Entrypoint/DirectX11.cpp + src/Entrypoint/DirectX12.hpp + src/Entrypoint/DirectX12.cpp + src/Entrypoint/Metal.hpp + src/Entrypoint/Metal.mm ) add_source_group(UI_MODULE_SOURCES + src/UI/Export.hpp + src/UI/Export.cpp ) add_source_group(UTILS_MODULE_SOURCES @@ -33,6 +50,7 @@ set(UTILS_DIALOG_MODULE_SOURCES src/Utils/Dialog/Dialog.cpp ) if(APPLE) + find_library(COCOA_LIBRARY Cocoa) list(APPEND UTILS_DIALOG_MODULE_SOURCES src/Utils/Dialog/Dialog_macos.mm ) @@ -41,6 +59,8 @@ elseif(WIN32) src/Utils/Dialog/Dialog_win32.cpp ) elseif(LINUX) + find_package(PkgConfig REQUIRED) + pkg_check_modules(GTK3 REQUIRED gtk+-3.0) list(APPEND UTILS_DIALOG_MODULE_SOURCES src/Utils/Dialog/Dialog_linux.cpp ) @@ -60,14 +80,32 @@ function(add_executable_variant TARGET_NAME) ${CMAKE_SOURCE_DIR}/3rdparty/imgui ${CMAKE_SOURCE_DIR}/3rdparty/imnodes ) - target_link_libraries(${TARGET_NAME} PRIVATE ${CONAN_LIBS}) + target_link_libraries(${TARGET_NAME} + PRIVATE + ${CONAN_LIBS} + imgui + imnodes + ) target_compile_definitions(${TARGET_NAME} PRIVATE PLATFORM_WIN32=$<BOOL:${WIN32}> PLATFORM_MACOS=$<BOOL:${APPLE}> PLATFORM_LINUX=$<BOOL:${LINUX}> + IMGUI_INCLUDE_OPENGL2_BACKEND=$<BOOL:${IMGUI_INCLUDE_OPENGL2_BACKEND}> + IMGUI_INCLUDE_OPENGL3_BACKEND=$<BOOL:${IMGUI_INCLUDE_OPENGL3_BACKEND}> + IMGUI_INCLUDE_VULKAN_BACKEND=$<BOOL:${IMGUI_INCLUDE_VULKAN_BACKEND}> + IMGUI_INCLUDE_DX11_BACKEND=$<BOOL:${IMGUI_INCLUDE_DX11_BACKEND}> + IMGUI_INCLUDE_DX12_BACKEND=$<BOOL:${IMGUI_INCLUDE_DX12_BACKEND}> + IMGUI_INCLUDE_METAL_BACKEND=$<BOOL:${IMGUI_INCLUDE_METAL_BACKEND}> ) + if(APPLE) + target_link_libraries(${TARGET_NAME} PUBLIC ${COCOA_LIBRARY}) + elseif(LINUX) + target_link_libraries(${TARGET_NAME} PUBLIC ${GTK3_LIBRARIES}) + target_include_directories(${TARGET_NAME} PRIVATE ${GTK3_INCLUDE_DIRS}) + endif() + # No console window when targetting windows if(WIN32) if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang") @@ -81,11 +119,11 @@ function(add_executable_variant TARGET_NAME) endif() endif() - if(${CMAKE_UNITY_BUILD}) + if(BUILD_CORE_WITH_UNITY_BUILD) message("CpltCore: - using unity build") set_target_properties(${TARGET_NAME} PROPERTIES - # UNITY_BUILD property is automatically set when CMAKE_UNITY_BUILD is set + UNITY_BUILD ON UNITY_BUILD_MODE GROUP ) else() @@ -93,7 +131,11 @@ function(add_executable_variant TARGET_NAME) endif() endfunction() -add_executable_variant(CpltCore_main) -target_compile_definitions(CpltCore_main PRIVATE DOCTEST_CONFIG_DISABLE=1) +if(BUILD_CORE_MAIN) + add_executable_variant(CpltCore_main) + target_compile_definitions(CpltCore_main PRIVATE DOCTEST_CONFIG_DISABLE=1) +endif() -add_executable_variant(CpltCore_test) +if(BUILD_CORE_TESTS) + add_executable_variant(CpltCore_test) +endif() |