1- diff --git a/googlemock/CMakeLists.txt b/googlemock/CMakeLists.txt
2- index 99b2411..cd17813 100644
3- --- a/googlemock/CMakeLists.txt
4- +++ b/googlemock/CMakeLists.txt
5- @@ -109,6 +109,10 @@ target_include_directories(gmock SYSTEM INTERFACE
6- target_include_directories(gmock_main SYSTEM INTERFACE
7- "$<BUILD_INTERFACE:${dirs}>"
8- "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>")
9- + if (BUILD_SHARED_LIBS)
10- + target_compile_definitions(gmock_main INTERFACE
11- + $<BUILD_INTERFACE:GTEST_LINKED_AS_SHARED_LIBRARY=1>)
12- + endif()
13-
14- ########################################################################
15- #
161diff --git a/googlemock/include/gmock/internal/gmock-port.h b/googlemock/include/gmock/internal/gmock-port.h
172index e9d9e32..ca55646 100644
183--- a/googlemock/include/gmock/internal/gmock-port.h
@@ -32,23 +17,8 @@ index e9d9e32..ca55646 100644
3217
3318 #define GMOCK_FLAG_GET(name) ::absl::GetFlag(GMOCK_FLAG(name))
3419 #define GMOCK_FLAG_SET(name, value) \
35- diff --git a/googletest/CMakeLists.txt b/googletest/CMakeLists.txt
36- index dce6a7c..80888db 100644
37- --- a/googletest/CMakeLists.txt
38- +++ b/googletest/CMakeLists.txt
39- @@ -147,6 +147,10 @@ target_include_directories(gtest SYSTEM INTERFACE
40- target_include_directories(gtest_main SYSTEM INTERFACE
41- "$<BUILD_INTERFACE:${dirs}>"
42- "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>")
43- + if (BUILD_SHARED_LIBS)
44- + target_compile_definitions(gtest_main INTERFACE
45- + $<BUILD_INTERFACE:GTEST_LINKED_AS_SHARED_LIBRARY=1>)
46- + endif()
47- if(CMAKE_SYSTEM_NAME MATCHES "QNX" AND CMAKE_SYSTEM_VERSION VERSION_GREATER_EQUAL 7.1)
48- target_link_libraries(gtest PUBLIC regex)
49- endif()
5020diff --git a/googletest/cmake/internal_utils.cmake b/googletest/cmake/internal_utils.cmake
51- index 580ac1c..96fe3ac 100644
21+ index 580ac1c..b338398 100644
5222--- a/googletest/cmake/internal_utils.cmake
5323+++ b/googletest/cmake/internal_utils.cmake
5424@@ -11,6 +11,7 @@
@@ -76,10 +46,20 @@ index 580ac1c..96fe3ac 100644
7646 # Make PDBs match library name.
7747 get_target_property(pdb_debug_postfix ${name} DEBUG_POSTFIX)
7848 set_target_properties(${name}
79- @@ -190,6 +191,13 @@ function(cxx_library_with_type name type cxx_flags)
80- COMPILE_DEFINITIONS "GTEST_CREATE_SHARED_LIBRARY=1")
49+ @@ -185,11 +186,19 @@ function(cxx_library_with_type name type cxx_flags)
50+ COMPILE_PDB_NAME_DEBUG "${name}${pdb_debug_postfix}")
51+
52+ if (BUILD_SHARED_LIBS OR type STREQUAL "SHARED")
53+ - set_target_properties(${name}
54+ - PROPERTIES
55+ - COMPILE_DEFINITIONS "GTEST_CREATE_SHARED_LIBRARY=1")
56+ + target_compile_definitions(${name} PRIVATE
57+ + "GTEST_CREATE_SHARED_LIBRARY=1")
8158 target_compile_definitions(${name} INTERFACE
82- $<INSTALL_INTERFACE:GTEST_LINKED_AS_SHARED_LIBRARY=1>)
59+ - $<INSTALL_INTERFACE:GTEST_LINKED_AS_SHARED_LIBRARY=1>)
60+ + $<BUILD_INTERFACE:GTEST_LINKED_AS_SHARED_LIBRARY=1>
61+ + $<INSTALL_INTERFACE:GTEST_LINKED_AS_SHARED_LIBRARY=1>
62+ + )
8363+ if(APPLE)
8464+ set_target_properties(${name} PROPERTIES
8565+ INSTALL_RPATH "@loader_path")
@@ -90,10 +70,36 @@ index 580ac1c..96fe3ac 100644
9070 endif()
9171 if (DEFINED GTEST_HAS_PTHREAD)
9272 target_link_libraries(${name} PUBLIC Threads::Threads)
73+ @@ -226,9 +235,8 @@ function(cxx_executable_with_flags name cxx_flags libs)
74+ COMPILE_FLAGS "${cxx_flags}")
75+ endif()
76+ if (BUILD_SHARED_LIBS)
77+ - set_target_properties(${name}
78+ - PROPERTIES
79+ - COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1")
80+ + target_compile_definitions(${name} PRIVATE
81+ + "GTEST_LINKED_AS_SHARED_LIBRARY=1")
82+ endif()
83+ # To support mixing linking in static and dynamic libraries, link each
84+ # library in with an extra call to target_link_libraries.
9385diff --git a/googletest/include/gtest/internal/gtest-port.h b/googletest/include/gtest/internal/gtest-port.h
94- index 8d27c2c..c1cd5e6 100644
86+ index 8d27c2c..890c953 100644
9587--- a/googletest/include/gtest/internal/gtest-port.h
9688+++ b/googletest/include/gtest/internal/gtest-port.h
89+ @@ -867,10 +867,10 @@ typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION;
90+ #ifndef GTEST_API_
91+
92+ #ifdef _MSC_VER
93+ - #if defined(GTEST_LINKED_AS_SHARED_LIBRARY) && GTEST_LINKED_AS_SHARED_LIBRARY
94+ - #define GTEST_API_ __declspec(dllimport)
95+ - #elif defined(GTEST_CREATE_SHARED_LIBRARY) && GTEST_CREATE_SHARED_LIBRARY
96+ + #if defined(GTEST_CREATE_SHARED_LIBRARY) && GTEST_CREATE_SHARED_LIBRARY
97+ #define GTEST_API_ __declspec(dllexport)
98+ + #elif defined(GTEST_LINKED_AS_SHARED_LIBRARY) && GTEST_LINKED_AS_SHARED_LIBRARY
99+ + #define GTEST_API_ __declspec(dllimport)
100+ #endif
101+ #elif GTEST_HAVE_ATTRIBUTE_(visibility)
102+ #define GTEST_API_ __attribute__((visibility("default")))
97103@@ -2287,11 +2287,11 @@ using TimeInMillis = int64_t; // Represents time in milliseconds.
98104
99105 // Macros for declaring flags.
0 commit comments