@@ -5,6 +5,9 @@ project(phtree VERSION 1.2.0
55 DESCRIPTION "PH-Tree C++"
66 LANGUAGES CXX )
77
8+
9+ cmake_policy (SET CMP0077 NEW )
10+
811# ---------------------------------------------------------------------------------------
912# Set default build to release
1013# ---------------------------------------------------------------------------------------
@@ -33,13 +36,13 @@ option(PHTREE_BUILD_BENCHMARKS "Build benchmarks (Requires https://github.com/go
3336# Compiler config
3437# ---------------------------------------------------------------------------------------
3538find_program (CCACHE_FOUND ccache )
36- if (CCACHE_FOUND)
39+ if (CCACHE_FOUND)
3740 message ("CCACHE is found" )
3841 set_property (GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
3942 set_property (GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
40- else (CCACHE_FOUND )
43+ else (CCACHE_FOUND )
4144 message ("CCACHE is NOT found" )
42- endif (CCACHE_FOUND )
45+ endif (CCACHE_FOUND )
4346
4447# specify the C++ standard
4548if (NOT CMAKE_CXX_STANDARD )
@@ -48,16 +51,26 @@ if (NOT CMAKE_CXX_STANDARD)
4851endif ()
4952
5053if (MSVC )
51- #set(CMAKE_CXX_FLAGS_RELEASE "/MT")
52- #set(CMAKE_CXX_FLAGS_DEBUG "/MTd")
5354 #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17 /Wall")
5455 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } /std:c++17" )
5556 set (CMAKE_CXX_FLAGS_RELEASE "/O2" )
5657
57- # set(CMAKE_CXX_FLAGS "-DNOMINMAX ${CMAKE_CXX_FLAGS}") # exclude M$ min/max macros
58- # set(CMAKE_CXX_FLAGS "/wd4996 ${CMAKE_CXX_FLAGS}") # don't warn about use of plain C functions without (non-portable) "_s" suffix
59- # set(CMAKE_EXE_LINKER_FLAGS "/WX:NO ${CMAKE_EXE_LINKER_FLAGS}" ) # don't treat warnings as compile errors--gtest doesn't build
60- # #set(CMAKE_CXX_FLAGS_DEBUG "/analyze ${CMAKE_CXX_FLAGS_DEBUG}")
58+ if (PHTREE_BUILD_TESTS OR PHTREE_BUILD_ALL)
59+ add_compile_options (/bigobj )
60+ endif ()
61+
62+ # For google benchmark
63+ if (PHTREE_BUILD_BENCHMARKS) # OR PHTREE_BUILD_ALL)
64+ # This still doesn't work. This also breaks gtest
65+ # See for example
66+ # https://stackoverflow.com/questions/55376111/how-to-build-and-link-google-benchmark-using-cmake-in-windows
67+ # https://github.com/google/benchmark/issues/1348
68+ # https://github.com/google/benchmark/issues/639
69+ # set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
70+ # set(BUILD_SHARED_LIBS TRUE) #=TRUE
71+ # set(BENCHMARK_DOWNLOAD_DEPENDENCIES on)
72+ # set(BENCHMARK_ENABLE_GTEST_TESTS OFF)
73+ endif ()
6174else ()
6275 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS } -std=c++17 -Wall -Werror" )
6376 if (PHTREE_BUILD_BENCHMARKS)
@@ -77,7 +90,7 @@ if (PHTREE_BUILD_EXAMPLES OR PHTREE_BUILD_ALL)
7790 add_subdirectory (examples )
7891endif ()
7992
80- if (PHTREE_BUILD_BENCHMARKS OR PHTREE_BUILD_ALL)
93+ if (! MSVC AND ( PHTREE_BUILD_BENCHMARKS OR PHTREE_BUILD_ALL) )
8194 message (STATUS "Generating benchmarks" )
8295 add_subdirectory (benchmark )
8396endif ()
0 commit comments