Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
4.9 kB · 141 lines
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142diff --git a/tree/CMakeLists.txt b/tree/CMakeLists.txtindex 4fd1b1a..f0d072b 100644--- a/tree/CMakeLists.txt+++ b/tree/CMakeLists.txt@@ -50,70 +50,79 @@ if(APPLE) set (CMAKE_FIND_FRAMEWORK LAST) endif() -# Fetch pybind to be able to use pybind11_add_module symbol.-set(PYBIND_VER v2.10.1)-include(FetchContent)-FetchContent_Declare(- pybind11- GIT_REPOSITORY https://github.com/pybind/pybind11- GIT_TAG ${PYBIND_VER}-)-if(NOT pybind11_POPULATED)- FetchContent_Populate(pybind11)- add_subdirectory(${pybind11_SOURCE_DIR} ${pybind11_BINARY_DIR})- include_directories(${pybind11_INCLUDE_DIR})-endif()--# Needed to disable Abseil tests.-set (BUILD_TESTING OFF)--# Include abseil-cpp.-set(ABSEIL_VER 20210324.2)-include(ExternalProject)-set(ABSEIL_CMAKE_ARGS- "-DCMAKE_INSTALL_PREFIX=${CMAKE_SOURCE_DIR}/abseil-cpp"- "-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}"- "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}"- "-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}"- "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}"- "-DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE}"- "-DLIBRARY_OUTPUT_PATH=${CMAKE_SOURCE_DIR}/abseil-cpp/lib")-if(DEFINED CMAKE_OSX_ARCHITECTURES)- set(ABSEIL_CMAKE_ARGS- ${ABSEIL_CMAKE_ARGS}- "-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}")+find_package(pybind11 CONFIG)++if (NOT pybind11_FOUND)+ # Fetch pybind to be able to use pybind11_add_module symbol.+ set(PYBIND_VER v2.10.1)+ include(FetchContent)+ FetchContent_Declare(+ pybind11+ GIT_REPOSITORY https://github.com/pybind/pybind11+ GIT_TAG ${PYBIND_VER}+ )+ if(NOT pybind11_POPULATED)+ FetchContent_Populate(pybind11)+ add_subdirectory(${pybind11_SOURCE_DIR} ${pybind11_BINARY_DIR})+ include_directories(${pybind11_INCLUDE_DIR})+ endif() endif()-ExternalProject_Add(abseil-cpp- GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git- GIT_TAG ${ABSEIL_VER}- PREFIX ${CMAKE_SOURCE_DIR}/abseil-cpp- CMAKE_ARGS ${ABSEIL_CMAKE_ARGS}-)-ExternalProject_Get_Property(abseil-cpp install_dir)-set(abseil_install_dir ${install_dir})-include_directories (${abseil_install_dir}/include)- # Define pybind11 tree module. pybind11_add_module(_tree tree.h tree.cc)-add_dependencies(_tree abseil-cpp)-+find_package(absl)++if (NOT absl_FOUND)+ # Needed to disable Abseil tests.+ set (BUILD_TESTING OFF)++ # Include abseil-cpp.+ set(ABSEIL_VER 20210324.2)+ include(ExternalProject)+ set(ABSEIL_CMAKE_ARGS+ "-DCMAKE_INSTALL_PREFIX=${CMAKE_SOURCE_DIR}/abseil-cpp"+ "-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}"+ "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}"+ "-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}"+ "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}"+ "-DCMAKE_POSITION_INDEPENDENT_CODE=${CMAKE_POSITION_INDEPENDENT_CODE}"+ "-DLIBRARY_OUTPUT_PATH=${CMAKE_SOURCE_DIR}/abseil-cpp/lib")+ if(DEFINED CMAKE_OSX_ARCHITECTURES)+ set(ABSEIL_CMAKE_ARGS+ ${ABSEIL_CMAKE_ARGS}+ "-DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}")+ endif()+ ExternalProject_Add(abseil-cpp+ GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git+ GIT_TAG ${ABSEIL_VER}+ PREFIX ${CMAKE_SOURCE_DIR}/abseil-cpp+ CMAKE_ARGS ${ABSEIL_CMAKE_ARGS}+ )+ ExternalProject_Get_Property(abseil-cpp install_dir)+ set(abseil_install_dir ${install_dir})+ include_directories (${abseil_install_dir}/include)++ add_dependencies(_tree abseil-cpp)++ if (WIN32 OR MSVC)+ set(ABSEIL_LIB_PREF "absl")+ set(LIB_SUFF "lib")+ else()+ set(ABSEIL_LIB_PREF "libabsl")+ set(LIB_SUFF "a")+ endif()+-if (WIN32 OR MSVC)- set(ABSEIL_LIB_PREF "absl")- set(LIB_SUFF "lib")+ # Link abseil static libs.+ # We don't use find_library here to force cmake to build abseil before linking.+ set(ABSEIL_LIBS int128 raw_hash_set raw_logging_internal strings throw_delegate)+ foreach(ABSEIL_LIB IN LISTS ABSEIL_LIBS)+ target_link_libraries(_tree PRIVATE+ "${abseil_install_dir}/lib/${ABSEIL_LIB_PREF}_${ABSEIL_LIB}.${LIB_SUFF}")+ endforeach() else()- set(ABSEIL_LIB_PREF "libabsl")- set(LIB_SUFF "a")+ target_link_libraries(_tree PRIVATE absl::int128 absl::raw_hash_set absl::raw_logging_internal absl::strings absl::throw_delegate) endif() -# Link abseil static libs.-# We don't use find_library here to force cmake to build abseil before linking.-set(ABSEIL_LIBS int128 raw_hash_set raw_logging_internal strings throw_delegate)-foreach(ABSEIL_LIB IN LISTS ABSEIL_LIBS)- target_link_libraries(_tree PRIVATE- "${abseil_install_dir}/lib/${ABSEIL_LIB_PREF}_${ABSEIL_LIB}.${LIB_SUFF}")-endforeach()- # Make the module private to tree package. set_target_properties(_tree PROPERTIES OUTPUT_NAME tree/_tree)