diff --git a/.github/workflows/cmake-multi-platform.yml b/.github/workflows/cmake-multi-platform.yml index 2fc5be9..40b7f0e 100644 --- a/.github/workflows/cmake-multi-platform.yml +++ b/.github/workflows/cmake-multi-platform.yml @@ -40,7 +40,7 @@ jobs: git clone --depth 1 https://github.com/microsoft/vcpkg "$VCPKG_ROOT" - name: Configure (cmake --preset) shell: bash - run: cmake --preset linux-release -DOMATH_BUILD_TESTS=ON -DOMATH_BUILD_BENCHMARK=OFF -DOMATH_BUILD_VIA_VCPKG=ON + run: cmake --preset linux-release -DOMATH_BUILD_TESTS=ON -DOMATH_BUILD_BENCHMARK=OFF -DOMATH_BUILD_VIA_VCPKG=ON -DVCPKG_MANIFEST_FEATURES="imgui;avx2;tests" - name: Build shell: bash @@ -75,7 +75,7 @@ jobs: - name: Configure (cmake --preset) shell: bash - run: cmake --preset windows-release -DOMATH_BUILD_TESTS=ON -DOMATH_BUILD_BENCHMARK=OFF -DOMATH_BUILD_VIA_VCPKG=ON + run: cmake --preset windows-release -DOMATH_BUILD_TESTS=ON -DOMATH_BUILD_BENCHMARK=OFF -DOMATH_BUILD_VIA_VCPKG=ON -DVCPKG_MANIFEST_FEATURES="imgui;avx2;tests" - name: Build shell: bash diff --git a/.gitmodules b/.gitmodules index 87b94fb..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +0,0 @@ -[submodule "extlibs/googletest"] - path = extlibs/googletest - url = https://github.com/google/googletest.git -[submodule "extlibs/benchmark"] - path = extlibs/benchmark - url = https://github.com/google/benchmark.git diff --git a/CMakeLists.txt b/CMakeLists.txt index d57f26e..e4b4427 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,9 +21,9 @@ option(OMATH_BUILD_EXAMPLES "Build example projects with you can learn & play" O option(OMATH_STATIC_MSVC_RUNTIME_LIBRARY "Force Omath to link static runtime" OFF) option(OMATH_SUPRESS_SAFETY_CHECKS "Supress some safety checks in release build to improve general performance" ON) option(OMATH_USE_UNITY_BUILD "Will enable unity build to speed up compilation" OFF) -option(OMATH_ENABLE_LEGACY "Will enable legacy classes that MUST be used ONLY for backward compatibility" OFF) +option(OMATH_ENABLE_LEGACY "Will enable legacy classes that MUST be used ONLY for backward compatibility" ON) -option(OMATH_BUILD_VIA_VCPKG "Will enable building using vcpkg, vcpkg will override some options that were set in vcpkg.json file, and search for dependencies using vcpkg" OFF) +option(OMATH_BUILD_VIA_VCPKG "Will enable building using vcpkg, vcpkg will override some options that were set in vcpkg.json file, and search for dependencies using vcpkg" ON) if (OMATH_BUILD_VIA_VCPKG AND NOT CMAKE_TOOLCHAIN_FILE) message(FATAL_ERROR "[${PROJECT_NAME}] CMAKE_TOOLCHAIN_FILE IS EMPTY! Please set env variable called 'VCPKG_ROOT' to vcpkg root folder here is an example: 'C:/vcpkg' or '/home/user/vcpkg' ") @@ -107,7 +107,7 @@ if (OMATH_SUPRESS_SAFETY_CHECKS) endif () if (OMATH_ENABLE_LEGACY) - target_compile_options(${PROJECT_NAME} PUBLIC OMATH_ENABLE_LEGACY) + target_compile_definitions(${PROJECT_NAME} PUBLIC OMATH_ENABLE_LEGACY) endif () set_target_properties(${PROJECT_NAME} PROPERTIES @@ -140,9 +140,6 @@ endif () target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_23) -add_subdirectory(extlibs) - - if (OMATH_BUILD_TESTS) add_subdirectory(tests) target_compile_definitions(${PROJECT_NAME} PUBLIC OMATH_BUILD_TESTS) diff --git a/CMakePresets.json b/CMakePresets.json index 5aa27b1..1608eed 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -10,7 +10,6 @@ "cacheVariables": { "CMAKE_CXX_COMPILER": "cl.exe", "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake", - "VCPKG_MANIFEST_FEATURES": "imgui;avx2;tests", "VCPKG_INSTALLED_DIR": "${sourceDir}/cmake-build/vcpkg_installed", "CMAKE_MAKE_PROGRAM": "Ninja" }, @@ -45,7 +44,6 @@ "cacheVariables": { "CMAKE_CXX_COMPILER": "clang++", "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake", - "VCPKG_MANIFEST_FEATURES": "imgui;avx2;tests", "VCPKG_INSTALLED_DIR": "${sourceDir}/cmake-build/vcpkg_installed", "CMAKE_MAKE_PROGRAM": "Ninja" }, diff --git a/benchmark/CMakeLists.txt b/benchmark/CMakeLists.txt index 124e35a..fe48e3a 100644 --- a/benchmark/CMakeLists.txt +++ b/benchmark/CMakeLists.txt @@ -11,5 +11,9 @@ set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 23 CXX_STANDARD_REQUIRED ON) - -target_link_libraries(${PROJECT_NAME} PRIVATE benchmark::benchmark omath) \ No newline at end of file +if (TARGET benchmark::benchmark) + target_link_libraries(${PROJECT_NAME} PRIVATE benchmark::benchmark omath) +else() + find_package(benchmark CONFIG REQUIRED) + target_link_libraries(${PROJECT_NAME} PRIVATE benchmark::benchmark omath) +endif () diff --git a/extlibs/CMakeLists.txt b/extlibs/CMakeLists.txt deleted file mode 100644 index 3ed280f..0000000 --- a/extlibs/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ - -if (OMATH_BUILD_TESTS) - add_subdirectory(googletest) -endif () - -if (OMATH_BUILD_BENCHMARK) - set(BENCHMARK_ENABLE_TESTING OFF) - add_subdirectory(benchmark) -endif () \ No newline at end of file diff --git a/extlibs/benchmark b/extlibs/benchmark deleted file mode 160000 index 2948b6a..0000000 --- a/extlibs/benchmark +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2948b6a2e61ccabecc952c24794c6960d86c9ed6 diff --git a/extlibs/googletest b/extlibs/googletest deleted file mode 160000 index 52eb810..0000000 --- a/extlibs/googletest +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 52eb8108c5bdec04579160ae17225d66034bd723 diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 5d93257..0ab0c99 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -15,5 +15,11 @@ set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD_REQUIRED ON) -target_link_libraries(${PROJECT_NAME} PRIVATE gtest gtest_main omath::omath) + +if (NOT OMATH_BUILD_VIA_VCPKG) + target_link_libraries(${PROJECT_NAME} PRIVATE gtest gtest_main omath::omath) +else() + find_package(GTest CONFIG REQUIRED) + target_link_libraries(${PROJECT_NAME} PRIVATE GTest::gtest GTest::gtest_main omath::omath) +endif() gtest_discover_tests(${PROJECT_NAME}) \ No newline at end of file