diff options
author | vladlosev <vladlosev@8415998a-534a-0410-bf83-d39667b30386> | 2011-05-20 00:42:22 +0000 |
---|---|---|
committer | vladlosev <vladlosev@8415998a-534a-0410-bf83-d39667b30386> | 2011-05-20 00:42:22 +0000 |
commit | 587c1b37c2f0b6d430fb13ce09326db0135b557c (patch) | |
tree | 9396b2a9b8eb5d3c30beb9001e983bba37bc7774 /CMakeLists.txt | |
parent | 47be72a952e672e2635c62353d25e611e9a70dac (diff) | |
download | googletest-587c1b37c2f0b6d430fb13ce09326db0135b557c.tar.gz googletest-587c1b37c2f0b6d430fb13ce09326db0135b557c.tar.bz2 googletest-587c1b37c2f0b6d430fb13ce09326db0135b557c.zip |
Adds support for building Google Mock as a shared library (DLL).
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 3cabd161..ded9ca9d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,11 +9,6 @@ # make it prominent in the GUI. option(BUILD_SHARED_LIBS "Build shared libraries (DLLs)." OFF) -# Forces BUILD_SHARED_LIBS to OFF as Google Mock currently does not support -# working in a DLL. -# TODO(vladl@google.com): Implement building gMock as a DLL. -set(BUILD_SHARED_LIBS OFF) - option(gmock_build_tests "Build all of Google Mock's own tests." OFF) # A directory to find Google Test sources. @@ -76,11 +71,16 @@ include_directories("${gmock_SOURCE_DIR}/include" # Google Mock libraries. We build them using more strict warnings than what # are used for other targets, to ensure that Google Mock can be compiled by # a user aggressive about warnings. -cxx_library(gmock "${cxx_strict}" src/gmock-all.cc) -target_link_libraries(gmock gtest) +cxx_library(gmock + "${cxx_strict}" + "${gtest_dir}/src/gtest-all.cc" + src/gmock-all.cc) -cxx_library(gmock_main "${cxx_strict}" src/gmock_main.cc) -target_link_libraries(gmock_main gmock) +cxx_library(gmock_main + "${cxx_strict}" + "${gtest_dir}/src/gtest-all.cc" + src/gmock-all.cc + src/gmock_main.cc) ######################################################################## # @@ -129,8 +129,10 @@ if (gmock_build_tests) cxx_library(gmock_main_no_exception "${cxx_no_exception}" "${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc) + cxx_library(gmock_main_no_rtti "${cxx_no_rtti}" "${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc) + cxx_library(gmock_main_use_own_tuple "${cxx_use_own_tuple}" "${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc) @@ -143,6 +145,20 @@ if (gmock_build_tests) cxx_test_with_flags(gmock_use_own_tuple_test "${cxx_use_own_tuple}" gmock_main_use_own_tuple test/gmock-spec-builders_test.cc) + cxx_shared_library(shared_gmock_main "${cxx_default}" + "${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc) + + # Tests that a binary can be built with Google Mock as a shared library. On + # some system configurations, it may not possible to run the binary without + # knowing more details about the system configurations. We do not try to run + # this binary. To get a more robust shared library coverage, configure with + # -DBUILD_SHARED_LIBS=ON. + cxx_executable_with_flags(shared_gmock_test_ "${cxx_default}" + shared_gmock_main test/gmock-spec-builders_test.cc) + set_target_properties(shared_gmock_test_ + PROPERTIES + COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1") + ############################################################ # Python tests. |