Skip to content

Commit

Permalink
cmake: Fix googletest's flags dllimport/dllexport declspec
Browse files Browse the repository at this point in the history
  • Loading branch information
Mizux committed Feb 4, 2025
1 parent 100315c commit 6d89b9f
Showing 1 changed file with 53 additions and 0 deletions.
53 changes: 53 additions & 0 deletions patches/googletest-v1.15.2.patch
Original file line number Diff line number Diff line change
@@ -1,3 +1,37 @@
diff --git a/googlemock/include/gmock/internal/gmock-port.h b/googlemock/include/gmock/internal/gmock-port.h
index e9d9e32..ca55646 100644
--- a/googlemock/include/gmock/internal/gmock-port.h
+++ b/googlemock/include/gmock/internal/gmock-port.h
@@ -85,11 +85,11 @@

// Macros for declaring flags.
#define GMOCK_DECLARE_bool_(name) \
- ABSL_DECLARE_FLAG(bool, GMOCK_FLAG_NAME_(name))
+ GTEST_API_ ABSL_DECLARE_FLAG(bool, GMOCK_FLAG_NAME_(name))
#define GMOCK_DECLARE_int32_(name) \
- ABSL_DECLARE_FLAG(int32_t, GMOCK_FLAG_NAME_(name))
+ GTEST_API_ ABSL_DECLARE_FLAG(int32_t, GMOCK_FLAG_NAME_(name))
#define GMOCK_DECLARE_string_(name) \
- ABSL_DECLARE_FLAG(std::string, GMOCK_FLAG_NAME_(name))
+ GTEST_API_ ABSL_DECLARE_FLAG(std::string, GMOCK_FLAG_NAME_(name))

#define GMOCK_FLAG_GET(name) ::absl::GetFlag(GMOCK_FLAG(name))
#define GMOCK_FLAG_SET(name, value) \
diff --git a/googletest/CMakeLists.txt b/googletest/CMakeLists.txt
index dce6a7c..65bfab2 100644
--- a/googletest/CMakeLists.txt
+++ b/googletest/CMakeLists.txt
@@ -147,6 +147,10 @@ target_include_directories(gtest SYSTEM INTERFACE
target_include_directories(gtest_main SYSTEM INTERFACE
"$<BUILD_INTERFACE:${dirs}>"
"$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>")
+if (BUILD_SHARED_LIBS OR type STREQUAL "SHARED")
+ target_compile_definitions(gtest_main INTERFACE
+ $<BUILD_INTERFACE:GTEST_LINKED_AS_SHARED_LIBRARY=1>)
+endif()
if(CMAKE_SYSTEM_NAME MATCHES "QNX" AND CMAKE_SYSTEM_VERSION VERSION_GREATER_EQUAL 7.1)
target_link_libraries(gtest PUBLIC regex)
endif()
diff --git a/googletest/cmake/internal_utils.cmake b/googletest/cmake/internal_utils.cmake
index 580ac1c..96fe3ac 100644
--- a/googletest/cmake/internal_utils.cmake
Expand Down Expand Up @@ -41,3 +75,22 @@ index 580ac1c..96fe3ac 100644
endif()
if (DEFINED GTEST_HAS_PTHREAD)
target_link_libraries(${name} PUBLIC Threads::Threads)
diff --git a/googletest/include/gtest/internal/gtest-port.h b/googletest/include/gtest/internal/gtest-port.h
index 8d27c2c..c1cd5e6 100644
--- a/googletest/include/gtest/internal/gtest-port.h
+++ b/googletest/include/gtest/internal/gtest-port.h
@@ -2287,11 +2287,11 @@ using TimeInMillis = int64_t; // Represents time in milliseconds.

// Macros for declaring flags.
#define GTEST_DECLARE_bool_(name) \
- ABSL_DECLARE_FLAG(bool, GTEST_FLAG_NAME_(name))
+ GTEST_API_ ABSL_DECLARE_FLAG(bool, GTEST_FLAG_NAME_(name))
#define GTEST_DECLARE_int32_(name) \
- ABSL_DECLARE_FLAG(int32_t, GTEST_FLAG_NAME_(name))
+ GTEST_API_ ABSL_DECLARE_FLAG(int32_t, GTEST_FLAG_NAME_(name))
#define GTEST_DECLARE_string_(name) \
- ABSL_DECLARE_FLAG(std::string, GTEST_FLAG_NAME_(name))
+ GTEST_API_ ABSL_DECLARE_FLAG(std::string, GTEST_FLAG_NAME_(name))

#define GTEST_FLAG_SAVER_ ::absl::FlagSaver

0 comments on commit 6d89b9f

Please sign in to comment.