diff --git a/googlemock/include/gmock/internal/gmock-port.h b/googlemock/include/gmock/internal/gmock-port.h index 42d36d2f..3bf0b818 100644 --- a/googlemock/include/gmock/internal/gmock-port.h +++ b/googlemock/include/gmock/internal/gmock-port.h @@ -86,11 +86,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/cmake/internal_utils.cmake b/googletest/cmake/internal_utils.cmake index 7ca256a7..ca76f42d 100644 --- a/googletest/cmake/internal_utils.cmake +++ b/googletest/cmake/internal_utils.cmake @@ -185,11 +185,19 @@ function(cxx_library_with_type name type cxx_flags) COMPILE_PDB_NAME_DEBUG "${name}${pdb_debug_postfix}") if (BUILD_SHARED_LIBS OR type STREQUAL "SHARED") - set_target_properties(${name} - PROPERTIES - COMPILE_DEFINITIONS "GTEST_CREATE_SHARED_LIBRARY=1") + target_compile_definitions(${name} PRIVATE + "GTEST_CREATE_SHARED_LIBRARY=1") target_compile_definitions(${name} INTERFACE - $) + $ + $ + ) + if(APPLE) + set_target_properties(${name} PROPERTIES + INSTALL_RPATH "@loader_path") + elseif(UNIX) + set_target_properties(${name} PROPERTIES + INSTALL_RPATH "$ORIGIN") + endif() endif() if (DEFINED GTEST_HAS_PTHREAD) target_link_libraries(${name} PUBLIC Threads::Threads) @@ -226,9 +234,8 @@ function(cxx_executable_with_flags name cxx_flags libs) COMPILE_FLAGS "${cxx_flags}") endif() if (BUILD_SHARED_LIBS) - set_target_properties(${name} - PROPERTIES - COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1") + target_compile_definitions(${name} PRIVATE + "GTEST_LINKED_AS_SHARED_LIBRARY=1") endif() # To support mixing linking in static and dynamic libraries, link each # library in with an extra call to target_link_libraries. diff --git a/googletest/include/gtest/internal/gtest-port.h b/googletest/include/gtest/internal/gtest-port.h index 3aa92057..69eaad10 100644 --- a/googletest/include/gtest/internal/gtest-port.h +++ b/googletest/include/gtest/internal/gtest-port.h @@ -832,10 +832,10 @@ typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION; #ifndef GTEST_API_ #ifdef _MSC_VER -#if defined(GTEST_LINKED_AS_SHARED_LIBRARY) && GTEST_LINKED_AS_SHARED_LIBRARY -#define GTEST_API_ __declspec(dllimport) -#elif defined(GTEST_CREATE_SHARED_LIBRARY) && GTEST_CREATE_SHARED_LIBRARY +#if defined(GTEST_CREATE_SHARED_LIBRARY) && GTEST_CREATE_SHARED_LIBRARY #define GTEST_API_ __declspec(dllexport) +#elif defined(GTEST_LINKED_AS_SHARED_LIBRARY) && GTEST_LINKED_AS_SHARED_LIBRARY +#define GTEST_API_ __declspec(dllimport) #endif #elif GTEST_INTERNAL_HAVE_CPP_ATTRIBUTE(gnu::visibility) #define GTEST_API_ [[gnu::visibility("default")]] @@ -2252,11 +2252,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