forked from xsburg/magnetometry-toolkit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeGTest.txt
72 lines (64 loc) · 3.06 KB
/
CMakeGTest.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# Enable ExternalProject CMake module
include(ExternalProject)
# Set default ExternalProject root directory
set_directory_properties(PROPERTIES EP_PREFIX ${CMAKE_BINARY_DIR}/ThirdParty)
#######################
# Create patch file for gtest with MSVC 2012
# if(MSVC_VERSION EQUAL 1700)
# file(WRITE gtest.patch "Index: cmake/internal_utils.cmake\n")
# file(APPEND gtest.patch "===================================================================\n")
# file(APPEND gtest.patch "--- cmake/internal_utils.cmake (revision 660)\n")
# file(APPEND gtest.patch "+++ cmake/internal_utils.cmake (working copy)\n")
# file(APPEND gtest.patch "@@ -66,6 +66,9 @@\n")
# file(APPEND gtest.patch " # Resolved overload was found by argument-dependent lookup.\n")
# file(APPEND gtest.patch " set(cxx_base_flags \"\${cxx_base_flags} -wd4675\")\n")
# file(APPEND gtest.patch " endif()\n")
# file(APPEND gtest.patch "+ if (MSVC_VERSION EQUAL 1700)\n")
# file(APPEND gtest.patch "+ set(cxx_base_flags \"\${cxx_base_flags} -D_VARIADIC_MAX=10\")\n")
# file(APPEND gtest.patch "+ endif ()\n")
# file(APPEND gtest.patch " set(cxx_base_flags \"\${cxx_base_flags} -D_UNICODE -DUNICODE -DWIN32 -D_WIN32\")\n")
# file(APPEND gtest.patch " set(cxx_base_flags \"\${cxx_base_flags} -DSTRICT -DWIN32_LEAN_AND_MEAN\")\n")
# file(APPEND gtest.patch " set(cxx_exception_flags \"-EHsc -D_HAS_EXCEPTIONS=1\")\n")
# else()
# file(WRITE gtest.patch "")
# endif()
if (NOT CMAKE_BUILD_TYPE)
message("Setting CMAKE_BUILD_TYPE to `Release`")
set(CMAKE_BUILD_TYPE Release)
endif()
# Add gtest
ExternalProject_Add(
googletest
SVN_REPOSITORY https://github.com/google/googletest/tags/release-1.7.0
#SVN_REVISION -r 660
TIMEOUT 10
#PATCH_COMMAND svn patch ${CMAKE_SOURCE_DIR}/gtest.patch ${CMAKE_BINARY_DIR}/ThirdParty/src/googletest
# Force separate output paths for debug and release builds to allow easy
# identification of correct lib in subsequent TARGET_LINK_LIBRARIES commands
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=DebugLibs
-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=ReleaseLibs
-Dgtest_force_shared_crt=ON
# Disable install step
INSTALL_COMMAND ""
# Wrap download, configure and build steps in a script to log output
LOG_DOWNLOAD ON
LOG_CONFIGURE ON
LOG_BUILD ON)
# Specify include dir
ExternalProject_Get_Property(googletest source_dir)
include_directories(${source_dir}/include)
# Add compiler flag for MSVC 2012
if(MSVC_VERSION EQUAL 1700)
add_definitions(-D_VARIADIC_MAX=10)
endif()
# Specify MainTest's link libraries
ExternalProject_Get_Property(googletest binary_dir)
if(MSVC)
set(Suffix ".lib")
else()
set(Suffix ".a")
set(Pthread "-pthread")
endif()
set(GTEST_DEBUG_LIBS ${binary_dir}/DebugLibs/${CMAKE_FIND_LIBRARY_PREFIXES}gtest${Suffix})
set(GTEST_RELEASE_LIBS ${binary_dir}/ReleaseLibs/${CMAKE_FIND_LIBRARY_PREFIXES}gtest${Suffix})