diff -up ./CMakeLists.txt.1 ./CMakeLists.txt --- ./CMakeLists.txt.1 2020-05-24 00:36:23.000000000 -0400 +++ ./CMakeLists.txt 2020-05-26 21:06:16.035802108 -0400 @@ -36,6 +36,8 @@ else(${PKG_CONFIG_FOUND}) endif(${PKG_CONFIG_FOUND}) endif(UNIX) +find_package(absl) + # Set default build type. if(NOT CMAKE_BUILD_TYPE) message(STATUS "Setting build type to 'RelWithDebInfo' as none was specified.") @@ -89,7 +91,6 @@ endif(UNIX) include_directories(.) include_directories(src) -include_directories(third_party/abseil-cpp) include_directories("${CMAKE_CURRENT_BINARY_DIR}/src") # Baseline build flags. @@ -159,6 +160,13 @@ add_library(libbloaty src/macho.cc src/range_map.cc src/webassembly.cc +) + +if (absl_FOUND) + target_link_libraries(libbloaty PUBLIC absl::base absl::strings absl::numeric) +else() + include_directories(third_party/abseil-cpp) + target_sources(libbloaty # Until Abseil has a proper CMake build system third_party/abseil-cpp/absl/base/internal/raw_logging.cc # Grrrr... third_party/abseil-cpp/absl/base/internal/throw_delegate.cc @@ -179,7 +187,8 @@ add_library(libbloaty third_party/abseil-cpp/absl/types/bad_optional_access.cc # One source file, no special build system needed. third_party/demumble/third_party/libcxxabi/cxa_demangle.cpp - ) + ) +endif() if(UNIX) set(LIBBLOATY_LIBS libbloaty) @@ -249,9 +258,8 @@ else() enable_testing() if(BUILD_TESTING) - add_subdirectory(third_party/googletest) - include_directories(third_party/googletest/googletest/include) - include_directories(third_party/googletest/googlemock/include) + find_package(GTest) + pkg_search_module(GMock gmock) set(TEST_TARGETS bloaty_test @@ -261,7 +269,7 @@ else() foreach(target ${TEST_TARGETS}) add_executable(${target} tests/${target}.cc) - target_link_libraries(${target} "${LIBBLOATY_LIBS}" gtest_main gmock "${CMAKE_THREAD_LIBS_INIT}") + target_link_libraries(${target} "${LIBBLOATY_LIBS}" GTest::Main GTest::GTest ${GMock_LIBRARIES} "${CMAKE_THREAD_LIBS_INIT}") endforeach(target) add_executable(fuzz_test tests/fuzz_target.cc tests/fuzz_driver.cc)