Skip to content

Commit b06fd00

Browse files
authored
Merge pull request #41 from orange-cpp/u/improved-cmake
improved cmake, removed useless cmake files
2 parents faeef59 + 998c8f3 commit b06fd00

File tree

14 files changed

+30
-74
lines changed

14 files changed

+30
-74
lines changed

CMakeLists.txt

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,19 @@ option(OMATH_BUILD_AS_SHARED_LIBRARY "Build Omath as .so or .dll" OFF)
1111
option(OMATH_USE_AVX2 "Omath will use AVX2 to boost performance" ON)
1212
option(OMATH_IMGUI_INTEGRATION "Omath will define method to convert omath types to imgui types" OFF)
1313
option(OMATH_BUILD_EXAMPLES "Build example projects with you can learn & play" OFF)
14-
option(OMATH_STATIC_MSVC_RUNTIME_LIBRARY "Force Omath to link static runtime" OFF)
14+
option(OMATH_STATIC_MSVC_RUNTIME_LIBRARY "Force Omath to link static runtime" OFF)
1515
option(OMATH_SUPRESS_SAFETY_CHECKS "Supress some safety checks in release build to improve general performance" ON)
1616
option(OMATH_USE_UNITY_BUILD "Will enable unity build to speed up compilation" ON)
1717

18+
file(GLOB_RECURSE OMATH_SOURCES CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/source/*.cpp")
19+
file(GLOB_RECURSE OMATH_HEADERS CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp")
20+
21+
1822
if (OMATH_BUILD_AS_SHARED_LIBRARY)
19-
add_library(omath SHARED source/matrix.cpp)
20-
else()
21-
add_library(omath STATIC source/matrix.cpp)
22-
endif()
23+
add_library(omath SHARED ${OMATH_SOURCES} ${OMATH_HEADERS})
24+
else ()
25+
add_library(omath STATIC ${OMATH_SOURCES} ${OMATH_HEADERS})
26+
endif ()
2327

2428
message(STATUS "Building on ${CMAKE_HOST_SYSTEM_NAME}")
2529
add_library(omath::omath ALIAS omath)
@@ -28,28 +32,28 @@ if (OMATH_IMGUI_INTEGRATION)
2832
target_compile_definitions(omath PUBLIC OMATH_IMGUI_INTEGRATION)
2933

3034
# IMGUI is being linked as submodule
31-
if(TARGET imgui)
35+
if (TARGET imgui)
3236
target_link_libraries(omath PUBLIC imgui)
3337
install(TARGETS imgui
3438
EXPORT omathTargets
3539
ARCHIVE DESTINATION lib
3640
LIBRARY DESTINATION lib
3741
RUNTIME DESTINATION bin)
38-
else()
42+
else ()
3943
# Assume that IMGUI linked via VCPKG.
4044
find_package(imgui CONFIG REQUIRED)
4145
target_link_libraries(omath PUBLIC imgui::imgui)
42-
endif()
46+
endif ()
4347

44-
endif()
48+
endif ()
4549

4650
if (OMATH_USE_AVX2)
4751
target_compile_definitions(omath PUBLIC OMATH_USE_AVX2)
48-
endif()
52+
endif ()
4953

5054
if (OMATH_SUPRESS_SAFETY_CHECKS)
5155
target_compile_definitions(omath PUBLIC OMATH_SUPRESS_SAFETY_CHECKS)
52-
endif()
56+
endif ()
5357

5458
set_target_properties(omath PROPERTIES
5559
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/out/${CMAKE_BUILD_TYPE}"
@@ -61,37 +65,35 @@ if (OMATH_USE_UNITY_BUILD)
6165
set_target_properties(omath PROPERTIES
6266
UNITY_BUILD ON
6367
UNITY_BUILD_BATCH_SIZE 20)
64-
endif()
68+
endif ()
6569

6670
if (OMATH_STATIC_MSVC_RUNTIME_LIBRARY)
6771
set_target_properties(omath PROPERTIES
6872
MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>"
6973
)
70-
endif()
74+
endif ()
7175

7276
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
7377
target_compile_options(omath PRIVATE -mavx2 -mfma)
74-
endif()
78+
endif ()
7579

7680
target_compile_features(omath PUBLIC cxx_std_23)
7781

7882

79-
add_subdirectory(source)
80-
81-
if(OMATH_BUILD_TESTS)
83+
if (OMATH_BUILD_TESTS)
8284
add_subdirectory(extlibs)
8385
add_subdirectory(tests)
84-
endif()
86+
endif ()
8587

8688
if (OMATH_BUILD_EXAMPLES)
8789
add_subdirectory(examples)
88-
endif()
90+
endif ()
8991

9092
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND OMATH_THREAT_WARNING_AS_ERROR)
9193
target_compile_options(omath PRIVATE /W4 /WX)
92-
elseif(OMATH_THREAT_WARNING_AS_ERROR)
94+
elseif (OMATH_THREAT_WARNING_AS_ERROR)
9395
target_compile_options(omath PRIVATE -Wall -Wextra -Wpedantic -Werror)
94-
endif()
96+
endif ()
9597

9698
target_include_directories(omath
9799
PUBLIC

source/3d_primitives/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

source/CMakeLists.txt

Lines changed: 0 additions & 11 deletions
This file was deleted.

source/collision/CMakeLists.txt

Lines changed: 0 additions & 3 deletions
This file was deleted.

source/engines/CMakeLists.txt

Lines changed: 0 additions & 4 deletions
This file was deleted.

source/engines/iw_engine/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

source/engines/opengl_engine/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

source/engines/source_engine/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

source/engines/unity_engine/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

source/pathfinding/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)