Bump abseil-cpp: 7c7754f -> bf29470
This commit is contained in:
4
cmake/external/abseil.CMakeLists.txt
vendored
4
cmake/external/abseil.CMakeLists.txt
vendored
@@ -9,11 +9,11 @@ project(abseil-cpp-download NONE)
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(abseil-cpp_project
|
||||
GIT_REPOSITORY https://github.com/abseil/abseil-cpp
|
||||
GIT_TAG "7c7754f"
|
||||
GIT_TAG "bf29470"
|
||||
SOURCE_DIR "${CMAKE_BINARY_DIR}/abseil-cpp-src"
|
||||
BINARY_DIR "${CMAKE_BINARY_DIR}/abseil-cpp-build"
|
||||
UPDATE_COMMAND ""
|
||||
PATCH_COMMAND git apply "${PROJECT_SOURCE_DIR}/patches/abseil-cpp-7c7754f.patch"
|
||||
PATCH_COMMAND git apply "${PROJECT_SOURCE_DIR}/patches/abseil-cpp-bf29470.patch"
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND ""
|
||||
|
||||
@@ -22,7 +22,7 @@ PROTOC_BINARY := $(shell $(WHICH) ${UNIX_PROTOC_BINARY})
|
||||
GFLAGS_TAG = 2.2.2
|
||||
GLOG_TAG = 0.3.5
|
||||
PROTOBUF_TAG = 3.6.1
|
||||
ABSL_TAG = 7c7754f
|
||||
ABSL_TAG = bf29470
|
||||
CBC_TAG = 2.9.9
|
||||
CGL_TAG = 0.59.10
|
||||
CLP_TAG = 1.16.11
|
||||
@@ -358,7 +358,6 @@ dependencies/sources/abseil-cpp-$(ABSL_TAG): | dependencies/sources
|
||||
git clone --quiet https://github.com/abseil/abseil-cpp.git dependencies/sources/abseil-cpp-$(ABSL_TAG)
|
||||
cd dependencies/sources/abseil-cpp-$(ABSL_TAG) && git reset --hard $(ABSL_TAG)
|
||||
cd dependencies/sources/abseil-cpp-$(ABSL_TAG) && git apply "$(OR_TOOLS_TOP)/patches/abseil-cpp-$(ABSL_TAG).patch"
|
||||
$(COPY) patches/abslConfig.cmake.in dependencies/sources/abseil-cpp-$(ABSL_TAG)/CMake
|
||||
|
||||
ABSL_INC = -I$(UNIX_ABSL_DIR)/include
|
||||
ABSL_SWIG = $(ABSL_INC)
|
||||
|
||||
@@ -38,7 +38,7 @@ ZLIB_ARCHIVE_TAG = 1211
|
||||
GFLAGS_TAG = 2.2.2
|
||||
GLOG_TAG = 0.3.5
|
||||
PROTOBUF_TAG = 3.6.1
|
||||
ABSL_TAG = 7c7754f
|
||||
ABSL_TAG = bf29470
|
||||
CBC_TAG = 2.9.9
|
||||
CGL_TAG = 0.59.10
|
||||
CLP_TAG = 1.16.11
|
||||
@@ -371,7 +371,6 @@ dependencies/sources/abseil-cpp-$(ABSL_TAG): | dependencies/sources
|
||||
git clone --quiet https://github.com/abseil/abseil-cpp.git dependencies\sources\abseil-cpp-$(ABSL_TAG)
|
||||
cd dependencies\sources\abseil-cpp-$(ABSL_TAG) && git reset --hard $(ABSL_TAG)
|
||||
cd dependencies\sources\abseil-cpp-$(ABSL_TAG) && git apply "$(OR_TOOLS_TOP)\patches\abseil-cpp-$(ABSL_TAG).patch"
|
||||
$(COPY) patches\abslConfig.cmake.in dependencies\sources\abseil-cpp-$(ABSL_TAG)\CMake
|
||||
|
||||
ABSL_INC = /I"$(WINDOWS_ABSL_PATH)\\include"
|
||||
ABSL_SWIG = -I"$(WINDOWS_ABSL_PATH)/include"
|
||||
|
||||
@@ -1,161 +0,0 @@
|
||||
diff --git a/CMake/AbseilHelpers.cmake b/CMake/AbseilHelpers.cmake
|
||||
index 8fdd510..f5eb10c 100644
|
||||
--- a/CMake/AbseilHelpers.cmake
|
||||
+++ b/CMake/AbseilHelpers.cmake
|
||||
@@ -17,6 +17,10 @@
|
||||
include(CMakeParseArguments)
|
||||
include(AbseilConfigureCopts)
|
||||
|
||||
+if(ABSL_ENABLE_INSTALL)
|
||||
+ include(GNUInstallDirs)
|
||||
+endif()
|
||||
+
|
||||
# The IDE folder for Abseil that will be used if Abseil is included in a CMake
|
||||
# project that sets
|
||||
# set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
@@ -76,14 +80,18 @@ set(ABSL_IDE_FOLDER Abseil)
|
||||
# TODO: Implement "ALWAYSLINK"
|
||||
function(absl_cc_library)
|
||||
cmake_parse_arguments(ABSL_CC_LIB
|
||||
- "DISABLE_INSTALL;PUBLIC;TESTONLY"
|
||||
+ "PUBLIC;TESTONLY"
|
||||
"NAME"
|
||||
"HDRS;SRCS;COPTS;DEFINES;LINKOPTS;DEPS"
|
||||
${ARGN}
|
||||
)
|
||||
|
||||
if (NOT ABSL_CC_LIB_TESTONLY OR ABSL_RUN_TESTS)
|
||||
- set(_NAME "absl_${ABSL_CC_LIB_NAME}")
|
||||
+ if (NOT ABSL_ENABLE_INSTALL)
|
||||
+ set(_NAME "absl_${ABSL_CC_LIB_NAME}")
|
||||
+ else()
|
||||
+ set(_NAME "${ABSL_CC_LIB_NAME}")
|
||||
+ endif()
|
||||
|
||||
# Check if this is a header-only library
|
||||
# Note that as of February 2019, many popular OS's (for example, Ubuntu
|
||||
@@ -103,9 +111,14 @@ function(absl_cc_library)
|
||||
|
||||
if(NOT ABSL_CC_LIB_IS_INTERFACE)
|
||||
add_library(${_NAME} STATIC "")
|
||||
+ set_target_properties(${_NAME} PROPERTIES
|
||||
+ OUTPUT_NAME "absl_${_NAME}"
|
||||
+ )
|
||||
target_sources(${_NAME} PRIVATE ${ABSL_CC_LIB_SRCS} ${ABSL_CC_LIB_HDRS})
|
||||
- target_include_directories(${_NAME}
|
||||
- PUBLIC ${ABSL_COMMON_INCLUDE_DIRS})
|
||||
+ target_include_directories(${_NAME} PUBLIC
|
||||
+ $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
|
||||
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> # <prefix>/include
|
||||
+ )
|
||||
target_compile_options(${_NAME}
|
||||
PRIVATE ${ABSL_CC_LIB_COPTS})
|
||||
target_link_libraries(${_NAME}
|
||||
@@ -129,8 +142,10 @@ function(absl_cc_library)
|
||||
else()
|
||||
# Generating header-only library
|
||||
add_library(${_NAME} INTERFACE)
|
||||
- target_include_directories(${_NAME}
|
||||
- INTERFACE ${ABSL_COMMON_INCLUDE_DIRS})
|
||||
+ target_include_directories(${_NAME} INTERFACE
|
||||
+ $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
|
||||
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> # <prefix>/include
|
||||
+ )
|
||||
target_link_libraries(${_NAME}
|
||||
INTERFACE ${ABSL_CC_LIB_DEPS} ${ABSL_CC_LIB_LINKOPTS}
|
||||
)
|
||||
@@ -138,6 +153,15 @@ function(absl_cc_library)
|
||||
endif()
|
||||
|
||||
add_library(absl::${ABSL_CC_LIB_NAME} ALIAS ${_NAME})
|
||||
+ # install rules
|
||||
+ if(ABSL_ENABLE_INSTALL)
|
||||
+ install(TARGETS ${_NAME}
|
||||
+ EXPORT ${PROJECT_NAME}Targets
|
||||
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
+ )
|
||||
+ endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
@@ -194,7 +218,7 @@ function(absl_cc_test)
|
||||
add_executable(${_NAME} "")
|
||||
target_sources(${_NAME} PRIVATE ${ABSL_CC_TEST_SRCS})
|
||||
target_include_directories(${_NAME}
|
||||
- PUBLIC ${ABSL_COMMON_INCLUDE_DIRS}
|
||||
+ PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
|
||||
PRIVATE ${GMOCK_INCLUDE_DIRS} ${GTEST_INCLUDE_DIRS}
|
||||
)
|
||||
target_compile_definitions(${_NAME}
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 571e48c..6c4854a 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -26,7 +26,19 @@ if (POLICY CMP0025)
|
||||
cmake_policy(SET CMP0025 NEW)
|
||||
endif()
|
||||
|
||||
-project(absl)
|
||||
+# Enable MACOSX_RPATH by default.
|
||||
+if(POLICY CMP0042)
|
||||
+ cmake_policy (SET CMP0042 NEW)
|
||||
+endif()
|
||||
+
|
||||
+project(absl VERSION 1.0.0 LANGUAGES CXX)
|
||||
+
|
||||
+option(ABSL_ENABLE_INSTALL "If ON, Abseil enable install rules." ON)
|
||||
+# when absl is included as subproject (i.e. using add_subdirectory(abseil-cpp))
|
||||
+# in the source tree of a project that uses it, install rules are disabled.
|
||||
+if(NOT "^${CMAKE_SOURCE_DIR}$" STREQUAL "^${PROJECT_SOURCE_DIR}$")
|
||||
+ set(ABSL_ENABLE_INSTALL OFF)
|
||||
+endif()
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH
|
||||
${CMAKE_CURRENT_LIST_DIR}/CMake
|
||||
@@ -93,3 +105,44 @@ if(BUILD_TESTING)
|
||||
endif()
|
||||
|
||||
add_subdirectory(absl)
|
||||
+
|
||||
+# install rules
|
||||
+if(ABSL_ENABLE_INSTALL)
|
||||
+ # See https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
|
||||
+ include(GNUInstallDirs)
|
||||
+ # See https://cmake.org/cmake/help/latest/command/find_package.html#search-procedure
|
||||
+ set(CMAKE_INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
|
||||
+ install(
|
||||
+ EXPORT ${PROJECT_NAME}Targets
|
||||
+ NAMESPACE absl::
|
||||
+ DESTINATION ${CMAKE_INSTALL_CONFIGDIR}
|
||||
+ )
|
||||
+ install(
|
||||
+ DIRECTORY absl
|
||||
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
+ COMPONENT Devel
|
||||
+ FILES_MATCHING
|
||||
+ PATTERN "*.inc"
|
||||
+ PATTERN "*.h"
|
||||
+ )
|
||||
+
|
||||
+ # See https://cmake.org/cmake/help/latest/module/CMakePackageConfigHelpers.html
|
||||
+ include(CMakePackageConfigHelpers)
|
||||
+ configure_package_config_file(
|
||||
+ CMake/abslConfig.cmake.in
|
||||
+ "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
|
||||
+ INSTALL_DESTINATION "${CMAKE_INSTALL_CONFIGDIR}"
|
||||
+ NO_CHECK_REQUIRED_COMPONENTS_MACRO
|
||||
+ )
|
||||
+ write_basic_package_version_file(
|
||||
+ "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
|
||||
+ COMPATIBILITY ExactVersion
|
||||
+ )
|
||||
+ install(
|
||||
+ FILES
|
||||
+ "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
|
||||
+ "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
|
||||
+ DESTINATION "${CMAKE_INSTALL_CONFIGDIR}"
|
||||
+ COMPONENT Devel
|
||||
+ )
|
||||
+endif()
|
||||
90
patches/abseil-cpp-bf29470.patch
Normal file
90
patches/abseil-cpp-bf29470.patch
Normal file
@@ -0,0 +1,90 @@
|
||||
diff --git a/CMake/AbseilHelpers.cmake b/CMake/AbseilHelpers.cmake
|
||||
index 6d26169..5e839c5 100644
|
||||
--- a/CMake/AbseilHelpers.cmake
|
||||
+++ b/CMake/AbseilHelpers.cmake
|
||||
@@ -81,7 +81,11 @@ function(absl_cc_library)
|
||||
)
|
||||
|
||||
if (NOT ABSL_CC_LIB_TESTONLY OR ABSL_RUN_TESTS)
|
||||
- set(_NAME "${ABSL_CC_LIB_NAME}")
|
||||
+ if (NOT ABSL_ENABLE_INSTALL)
|
||||
+ set(_NAME "absl_${ABSL_CC_LIB_NAME}")
|
||||
+ else()
|
||||
+ set(_NAME "${ABSL_CC_LIB_NAME}")
|
||||
+ endif()
|
||||
|
||||
# Check if this is a header-only library
|
||||
# Note that as of February 2019, many popular OS's (for example, Ubuntu
|
||||
@@ -150,7 +154,7 @@ function(absl_cc_library)
|
||||
|
||||
# TODO currently we don't install googletest alongside abseil sources, so
|
||||
# installed abseil can't be tested.
|
||||
- if (NOT ABSL_CC_LIB_TESTONLY)
|
||||
+ if (NOT ABSL_CC_LIB_TESTONLY AND ABSL_ENABLE_INSTALL)
|
||||
install(TARGETS ${_NAME} EXPORT ${PROJECT_NAME}Targets
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index e3bb8d0..7786ae7 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -29,6 +29,11 @@ endif()
|
||||
# if command can use IN_LIST
|
||||
cmake_policy(SET CMP0057 NEW)
|
||||
|
||||
+# Enable MACOSX_RPATH by default.
|
||||
+if(POLICY CMP0042)
|
||||
+ cmake_policy (SET CMP0042 NEW)
|
||||
+endif()
|
||||
+
|
||||
project(absl)
|
||||
|
||||
# when absl is included as subproject (i.e. using add_subdirectory(abseil-cpp))
|
||||
@@ -118,25 +123,28 @@ endif()
|
||||
|
||||
add_subdirectory(absl)
|
||||
|
||||
-# install as a subdirectory only
|
||||
-install(EXPORT ${PROJECT_NAME}Targets
|
||||
- NAMESPACE absl::
|
||||
- DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake"
|
||||
-)
|
||||
+# install rules
|
||||
+if(ABSL_ENABLE_INSTALL)
|
||||
+ # install as a subdirectory only
|
||||
+ install(EXPORT ${PROJECT_NAME}Targets
|
||||
+ NAMESPACE absl::
|
||||
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake"
|
||||
+ )
|
||||
|
||||
-configure_package_config_file(
|
||||
- CMake/abslConfig.cmake.in
|
||||
- "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
|
||||
- INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake"
|
||||
-)
|
||||
+ configure_package_config_file(
|
||||
+ CMake/abslConfig.cmake.in
|
||||
+ "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
|
||||
+ INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake"
|
||||
+ )
|
||||
|
||||
-install(FILES "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
|
||||
- DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake
|
||||
-)
|
||||
+ install(FILES "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
|
||||
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake
|
||||
+ )
|
||||
|
||||
-install(DIRECTORY absl
|
||||
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
- FILES_MATCHING
|
||||
- PATTERN "*.inc"
|
||||
- PATTERN "*.h"
|
||||
-)
|
||||
+ install(DIRECTORY absl
|
||||
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
+ FILES_MATCHING
|
||||
+ PATTERN "*.inc"
|
||||
+ PATTERN "*.h"
|
||||
+ )
|
||||
+endif()
|
||||
@@ -1,7 +0,0 @@
|
||||
## absl CMake configuration file
|
||||
|
||||
set(ABSL_VERSION @PROJECT_VERSION@)
|
||||
|
||||
@PACKAGE_INIT@
|
||||
|
||||
include ("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
|
||||
Reference in New Issue
Block a user