ext/facter/facter/lib/tests/CMakeLists.txt in facter-3.12.0.cfacter.20181004 vs ext/facter/facter/lib/tests/CMakeLists.txt in facter-3.12.1.cfacter.20181023
- old
+ new
@@ -38,10 +38,11 @@
"facts/cache.cc"
"facts/string_value.cc"
"logging/logging.cc"
"log_capture.cc"
"main.cc"
+ "mock_server.cc"
"util/string.cc"
"fixtures.cc"
"collection_fixture.cc"
"cwrapper.cc"
)
@@ -125,40 +126,23 @@
${YAMLCPP_INCLUDE_DIRS}
${LEATHERMAN_CATCH_INCLUDE}
${CPPHOCON_INCLUDE_DIRS}
)
-# On EL 4, we run into a linking error when trying to create libraries or
-# executables that link in a static library with code using threads. As I
-# described in https://gcc.gnu.org/ml/gcc-help/2015-08/msg00035.html, we get
-# the error undefined reference to symbol '__tls_get_addr@@GLIBC_2.3'.
-# Build mock_server as a separate shared library to avoid this error.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations")
-add_library(mock-server SHARED mock_server.cc)
-target_link_libraries(mock-server PRIVATE
- ${Boost_THREAD_LIBRARY}
- ${Boost_SYSTEM_LIBRARY}
- ${LIBFACTER_TESTS_PLATFORM_LIBRARIES})
+if (WIN32)
+ # On Windows with GCC 5.2, Boost.System emits warnings that aren't correctly
+ # suppressed by pragmas. Explicitly skip them.
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-variable")
+endif()
add_executable(libfacter_test $<TARGET_OBJECTS:libfactersrc>
${LIBFACTER_TESTS_COMMON_SOURCES}
${LIBFACTER_TESTS_PLATFORM_SOURCES}
${LIBFACTER_TESTS_CATEGORY_SOURCES})
-# On Windows, mock-server comes after Boost libraries to avoid double
-# definition of boost::system::system_category() on Windows. On Linux, it
-# comes before to avoid picking up incomplete Boost.Asio symbols included
-# by Boost.Log in Leatherman logging.
-if (WIN32)
- target_link_libraries(libfacter_test
- ${LIBS}
- ${LIBFACTER_TESTS_PLATFORM_LIBRARIES}
- mock-server)
-else()
- target_link_libraries(libfacter_test
- mock-server
- ${LIBS}
- ${LIBFACTER_TESTS_PLATFORM_LIBRARIES})
-endif()
+target_link_libraries(libfacter_test
+ ${LIBS}
+ ${LIBFACTER_TESTS_PLATFORM_LIBRARIES})
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND BOOST_STATIC AND LEATHERMAN_USE_LOCALES)
target_link_libraries(libfacter_test iconv)
endif()