Skip to content

Commit 633b1c0

Browse files
committed
Build: improve cmake usage
1 parent a1abc4a commit 633b1c0

15 files changed

Lines changed: 71 additions & 31 deletions

File tree

CMakeLists.txt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,6 @@ project(cae
99

1010
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/modules")
1111

12-
set(CMAKE_CXX_STANDARD 23)
13-
set(CMAKE_CXX_STANDARD_REQUIRED ON)
14-
set(CMAKE_CXX_EXTENSIONS OFF)
15-
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
16-
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/lib")
17-
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/lib")
18-
1912
option(CAE_CLANG_FORMAT "Enable clang-format" OFF)
2013

2114
file(GLOB_RECURSE PROJECT_FILES

apps/Editor/CMakeLists.txt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS "${PROJECT_SOURCE_DIR}/src/*.cpp")
1111

1212
add_executable(${PROJECT_NAME} ${SOURCES})
1313

14-
target_compile_definitions(${PROJECT_NAME} PRIVATE PLUGINS_DIR="${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
14+
target_compile_definitions(${PROJECT_NAME} PRIVATE PLUGINS_DIR="${CMAKE_BINARY_DIR}/bin/lib")
1515

1616
target_include_directories(${PROJECT_NAME} PRIVATE
1717
"${PROJECT_SOURCE_DIR}/include"
@@ -24,6 +24,14 @@ target_link_libraries(${PROJECT_NAME} PRIVATE
2424
glm::glm
2525
)
2626

27+
set_target_properties(${PROJECT_NAME} PROPERTIES
28+
CXX_STANDARD 23
29+
CXX_STANDARD_REQUIRED ON
30+
POSITION_INDEPENDENT_CODE ON
31+
CXX_EXTENSIONS OFF
32+
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
33+
)
34+
2735
copy_directory_to_target(
2836
${PROJECT_NAME}
2937
"${CMAKE_SOURCE_DIR}/assets"

modules/Engine/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ target_include_directories(${PROJECT_NAME}
3434
)
3535

3636
set_target_properties(${PROJECT_NAME} PROPERTIES
37+
CXX_STANDARD 23
38+
CXX_STANDARD_REQUIRED ON
3739
POSITION_INDEPENDENT_CODE ON
3840
CXX_EXTENSIONS OFF
41+
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/lib"
3942
)

modules/Utils/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ target_include_directories(${PROJECT_NAME}
4141
$<BUILD_INTERFACE:${stb_SOURCE_DIR}>
4242
)
4343
set_target_properties(${PROJECT_NAME} PROPERTIES
44+
CXX_STANDARD 23
45+
CXX_STANDARD_REQUIRED ON
4446
POSITION_INDEPENDENT_CODE ON
4547
CXX_EXTENSIONS OFF
48+
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/lib"
4649
)

plugins/Renderer/OpenGL/CMakeLists.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ endif ()
5656

5757
target_link_libraries(${PROJECT_NAME} PRIVATE ${PLATFORM_LIBS})
5858
set_target_properties(${PROJECT_NAME} PROPERTIES
59-
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
60-
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
59+
CXX_STANDARD 23
60+
CXX_STANDARD_REQUIRED ON
61+
POSITION_INDEPENDENT_CODE ON
62+
CXX_EXTENSIONS OFF
63+
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/lib"
6164
)

plugins/Renderer/Vulkan/CMakeLists.txt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ target_link_libraries(${PROJECT_NAME} PRIVATE
4545
${Vulkan_LIBRARIES}
4646
)
4747
set_target_properties(${PROJECT_NAME} PROPERTIES
48-
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
49-
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
50-
)
48+
CXX_STANDARD 23
49+
CXX_STANDARD_REQUIRED ON
50+
POSITION_INDEPENDENT_CODE ON
51+
CXX_EXTENSIONS OFF
52+
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/lib"
53+
)

plugins/Renderer/WebGPU/CMakeLists.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ target_link_libraries(${PROJECT_NAME} PRIVATE
1414
cae-modules
1515
)
1616
set_target_properties(${PROJECT_NAME} PROPERTIES
17-
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
18-
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
17+
CXX_STANDARD 23
18+
CXX_STANDARD_REQUIRED ON
19+
POSITION_INDEPENDENT_CODE ON
20+
CXX_EXTENSIONS OFF
21+
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/lib"
1922
)

plugins/Shader/Frontend/GLSL/CMakeLists.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ target_link_libraries(${PROJECT_NAME} PRIVATE
3535
glslang::glslang
3636
)
3737
set_target_properties(${PROJECT_NAME} PROPERTIES
38-
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
39-
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
38+
CXX_STANDARD 23
39+
CXX_STANDARD_REQUIRED ON
40+
POSITION_INDEPENDENT_CODE ON
41+
CXX_EXTENSIONS OFF
42+
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/lib"
4043
)

plugins/Shader/Frontend/HLSL/CMakeLists.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ target_link_libraries(${PROJECT_NAME} PRIVATE
1414
cae-modules
1515
)
1616
set_target_properties(${PROJECT_NAME} PROPERTIES
17-
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
18-
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
17+
CXX_STANDARD 23
18+
CXX_STANDARD_REQUIRED ON
19+
POSITION_INDEPENDENT_CODE ON
20+
CXX_EXTENSIONS OFF
21+
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/lib"
1922
)

plugins/Shader/IR/DXC/CMakeLists.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ target_link_libraries(${PROJECT_NAME} PRIVATE
1414
cae-modules
1515
)
1616
set_target_properties(${PROJECT_NAME} PROPERTIES
17-
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
18-
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
17+
CXX_STANDARD 23
18+
CXX_STANDARD_REQUIRED ON
19+
POSITION_INDEPENDENT_CODE ON
20+
CXX_EXTENSIONS OFF
21+
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/lib"
1922
)

0 commit comments

Comments
 (0)