diff options
Diffstat (limited to 'libtransport/third-party')
-rw-r--r-- | libtransport/third-party/CMakeLists.txt | 77 | ||||
-rw-r--r-- | libtransport/third-party/CMakeLists.txt.orig | 85 | ||||
-rw-r--r-- | libtransport/third-party/CMakeLists.txt.rej | 21 | ||||
-rw-r--r-- | libtransport/third-party/glog.patch | 2 | ||||
-rw-r--r-- | libtransport/third-party/memif.patch | 43 |
5 files changed, 111 insertions, 117 deletions
diff --git a/libtransport/third-party/CMakeLists.txt b/libtransport/third-party/CMakeLists.txt index 46a4c0f23..ad7b14ead 100644 --- a/libtransport/third-party/CMakeLists.txt +++ b/libtransport/third-party/CMakeLists.txt @@ -1,4 +1,4 @@ -# Copyright (c) 2021 Cisco and/or its affiliates. +# Copyright (c) 2021-2022 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -11,8 +11,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -include(FetchContent) - set (THIRD_PARTY_INSTALL_PREFIX ${CMAKE_CURRENT_BINARY_DIR}) option(ENABLE_RELY "Enable download/build of rely library" OFF) @@ -20,21 +18,34 @@ option(ENABLE_RELY "Enable download/build of rely library" OFF) if (ENABLE_RELY) ################################## # Download librely - - if(DEFINED ENV{BITBUCKET_USERNAME} AND DEFINED ENV{BITBUCKET_PASSWORD}) - set(GIT_REPO https://$ENV{BITBUCKET_USERNAME}:$ENV{BITBUCKET_PASSWORD}@bitbucket-eng-gpk1.cisco.com/bitbucket/scm/icn/rely.git) + + if (INTERNAL_ENVIRONMENT) + include(SetRelyGitRepo) + SetRelyGitRepo() else() - set(GIT_REPO ssh://git@bitbucket-eng-gpk1.cisco.com:7999/icn/rely.git) + if(DEFINED ENV{GITHUB_USERNAME} AND DEFINED ENV{GITHUB_PASSWORD}) + set(GIT_REPO https://$ENV{GITHUB_USERNAME}:$ENV{GITHUB_PASSWORD}@github.com/steinwurf/rely.git) + else() + set(GIT_REPO ssh://github.com/steinwurf/rely.git) + endif() endif() FetchContent_Declare( rely GIT_REPOSITORY ${GIT_REPO} GIT_TAG release/latest + GIT_SHALLOW + GIT_PROGRESS + EXCLUDE_FROM_ALL ) set(ENABLE_PIC ON) - FetchContent_MakeAvailable(rely) + FetchContent_GetProperties(rely) + if(NOT rely_POPULATED) + pr("Download and build" "rely") + FetchContent_Populate(rely) + add_subdirectory(${rely_SOURCE_DIR} ${rely_BINARY_DIR} EXCLUDE_FROM_ALL) + endif() list(APPEND THIRD_PARTY_INCLUDE_DIRS ${rely_BINARY_DIR} @@ -44,7 +55,7 @@ if (ENABLE_RELY) # Get rely libraries get_property(steinwurf_object_libraries GLOBAL PROPERTY steinwurf::object_libraries) - + foreach(rely_library ${steinwurf_object_libraries}) list(APPEND THIRD_PARTY_OBJECT_LIBRARIES $<TARGET_OBJECTS:${rely_library}> @@ -60,9 +71,19 @@ FetchContent_Declare( glog URL https://github.com/google/glog/archive/refs/tags/v0.5.0.zip PATCH_COMMAND patch -p1 CMakeLists.txt ${CMAKE_CURRENT_SOURCE_DIR}/glog.patch + EXCLUDE_FROM_ALL ) -FetchContent_MakeAvailable(glog) +FetchContent_GetProperties(glog) +if(NOT glog_POPULATED) + pr("Download and build" "glog") + FetchContent_Populate(glog) + option(WITH_GFLAGS OFF) + option(WITH_GTEST OFF) + option(WITH_UNWIND OFF) + option(BUILD_TESTING OFF) + add_subdirectory(${glog_SOURCE_DIR} ${glog_BINARY_DIR} EXCLUDE_FROM_ALL) +endif() list(APPEND THIRD_PARTY_INCLUDE_DIRS ${glog_BINARY_DIR} @@ -77,6 +98,42 @@ list(APPEND THIRD_PARTY_DEPENDENCIES glog ) +if(UNIX AND (NOT APPLE) AND (NOT ${CMAKE_SYSTEM_NAME} MATCHES Android)) + ############################################################## + # Get memif version + ############################################################## + list(GET LIBMEMIF_DEFAULT_VERSION 0 MEMIF_VERSION) + + FetchContent_Declare( + memif + GIT_REPOSITORY https://github.com/FDio/vpp + GIT_TAG v${MEMIF_VERSION} + GIT_SHALLOW + GIT_PROGRESS + PATCH_COMMAND git apply ${CMAKE_CURRENT_SOURCE_DIR}/memif.patch + EXCLUDE_FROM_ALL + ) + + FetchContent_GetProperties(memif) + if(NOT memif_POPULATED) + FetchContent_Populate(memif) + add_subdirectory(${memif_SOURCE_DIR}/extras/libmemif ${memif_BINARY_DIR} EXCLUDE_FROM_ALL) + endif() + + list(APPEND THIRD_PARTY_INCLUDE_DIRS + ${memif_BINARY_DIR} + ${memif_SOURCE_DIR}/extras/libmemif/src + ) + + list(APPEND THIRD_PARTY_OBJECT_LIBRARIES + $<TARGET_OBJECTS:memif> + ) + + list(APPEND THIRD_PARTY_DEPENDENCIES + memif + ) +endif() + set (THIRD_PARTY_LIBRARIES ${THIRD_PARTY_LIBRARIES} PARENT_SCOPE) set (THIRD_PARTY_OBJECT_LIBRARIES ${THIRD_PARTY_OBJECT_LIBRARIES} PARENT_SCOPE) set (THIRD_PARTY_INCLUDE_DIRS ${THIRD_PARTY_INCLUDE_DIRS} PARENT_SCOPE) diff --git a/libtransport/third-party/CMakeLists.txt.orig b/libtransport/third-party/CMakeLists.txt.orig deleted file mode 100644 index 84db8cb4c..000000000 --- a/libtransport/third-party/CMakeLists.txt.orig +++ /dev/null @@ -1,85 +0,0 @@ -# Copyright (c) 2021 Cisco and/or its affiliates. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -include(FetchContent) - -set (THIRD_PARTY_INSTALL_PREFIX ${CMAKE_CURRENT_BINARY_DIR}) - -option(ENABLE_RELY "Enable download/build of rely library" OFF) - -if (ENABLE_RELY) - ################################## - # Download librely - - if(DEFINED ENV{BITBUCKET_USERNAME} AND DEFINED ENV{BITBUCKET_PASSWORD}) - set(GIT_REPO https://$ENV{BITBUCKET_USERNAME}:$ENV{BITBUCKET_PASSWORD}@bitbucket-eng-gpk1.cisco.com/bitbucket/scm/icn/rely.git) - else() - set(GIT_REPO ssh://git@bitbucket-eng-gpk1.cisco.com:7999/icn/rely.git) - endif() - - FetchContent_Declare( - rely - GIT_REPOSITORY ${GIT_REPO} - GIT_TAG release/latest - FETCHCONTENT_QUIET - ) - - set(ENABLE_PIC ON) - FetchContent_MakeAvailable(rely) - - list(APPEND THIRD_PARTY_INCLUDE_DIRS - ${rely_BINARY_DIR} - ${rely_SOURCE_DIR}/src - ) - - # Get rely libraries - get_property(steinwurf_object_libraries GLOBAL - PROPERTY steinwurf::object_libraries) - - foreach(rely_library ${steinwurf_object_libraries}) - list(APPEND THIRD_PARTY_OBJECT_LIBRARIES - $<TARGET_OBJECTS:${rely_library}> - ) - endforeach() - - list(APPEND THIRD_PARTY_DEPENDENCIES - rely - ) -endif() - -FetchContent_Declare( - glog - URL https://github.com/google/glog/archive/refs/tags/v0.5.0.zip - PATCH_COMMAND patch -p1 CMakeLists.txt ${CMAKE_CURRENT_SOURCE_DIR}/glog.patch - FETCHCONTENT_QUIET -) - -FetchContent_MakeAvailable(glog) - -list(APPEND THIRD_PARTY_INCLUDE_DIRS - ${glog_BINARY_DIR} - ${glog_SOURCE_DIR}/src -) - -list(APPEND THIRD_PARTY_OBJECT_LIBRARIES - $<TARGET_OBJECTS:glog> -) - -list(APPEND THIRD_PARTY_DEPENDENCIES - glog -) - -set (THIRD_PARTY_LIBRARIES ${THIRD_PARTY_LIBRARIES} PARENT_SCOPE) -set (THIRD_PARTY_OBJECT_LIBRARIES ${THIRD_PARTY_OBJECT_LIBRARIES} PARENT_SCOPE) -set (THIRD_PARTY_INCLUDE_DIRS ${THIRD_PARTY_INCLUDE_DIRS} PARENT_SCOPE) -set (THIRD_PARTY_DEPENDENCIES ${THIRD_PARTY_DEPENDENCIES} PARENT_SCOPE) diff --git a/libtransport/third-party/CMakeLists.txt.rej b/libtransport/third-party/CMakeLists.txt.rej deleted file mode 100644 index 4ebaf9061..000000000 --- a/libtransport/third-party/CMakeLists.txt.rej +++ /dev/null @@ -1,21 +0,0 @@ ---- CMakeLists.txt -+++ CMakeLists.txt -@@ -41,9 +41,6 @@ if (NOT WITH_THREADS) - set (CMAKE_DISABLE_FIND_PACKAGE_Threads ON) - endif (NOT WITH_THREADS) - --set (CMAKE_C_VISIBILITY_PRESET hidden) --set (CMAKE_CXX_VISIBILITY_PRESET hidden) --set (CMAKE_VISIBILITY_INLINES_HIDDEN 1) - list (APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) - - include (CheckCXXSourceCompiles) -@@ -570,7 +567,7 @@ if (_glog_CMake_MODULES) - ) - endif (_glog_CMake_MODULES) - --add_library (glog -+add_library (glog OBJECT - ${GLOG_SRCS} - ${_glog_BINARY_CMake_MODULES} - ) diff --git a/libtransport/third-party/glog.patch b/libtransport/third-party/glog.patch index 9d6e46df0..4f4d440eb 100644 --- a/libtransport/third-party/glog.patch +++ b/libtransport/third-party/glog.patch @@ -20,4 +20,4 @@ index 62ebbcc..7d92fa5 100644 +add_library (glog OBJECT ${GLOG_SRCS} ${_glog_BINARY_CMake_MODULES} - ) + )
\ No newline at end of file diff --git a/libtransport/third-party/memif.patch b/libtransport/third-party/memif.patch new file mode 100644 index 000000000..0a64513e3 --- /dev/null +++ b/libtransport/third-party/memif.patch @@ -0,0 +1,43 @@ +diff --git a/extras/libmemif/CMakeLists.txt b/extras/libmemif/CMakeLists.txt +index b6b658c2d..28bb8c135 100644 +--- a/extras/libmemif/CMakeLists.txt ++++ b/extras/libmemif/CMakeLists.txt +@@ -24,7 +24,7 @@ if (NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "Release") + endif () + +-set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -DMEMIF_DBG -DICMP_DBG") ++set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -DICMP_DBG") + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) + set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib) + set(CMAKE_INSTALL_MESSAGE NEVER) +diff --git a/extras/libmemif/src/CMakeLists.txt b/extras/libmemif/src/CMakeLists.txt +index ddb8a52f8..b52566e5c 100644 +--- a/extras/libmemif/src/CMakeLists.txt ++++ b/extras/libmemif/src/CMakeLists.txt +@@ -32,22 +32,7 @@ list(APPEND MEMIF_SOURCES + + include_directories(${HEADERS_DIR}) + +-add_library(memif SHARED ${MEMIF_SOURCES}) +-target_link_libraries(memif ${CMAKE_THREAD_LIBS_INIT}) ++add_library(memif OBJECT ${MEMIF_SOURCES}) ++set_property(TARGET memif PROPERTY POSITION_INDEPENDENT_CODE ON) + +-find_library(LIB_BSD bsd) +-if(LIB_BSD) +- add_compile_definitions(HAS_LIB_BSD) +- target_link_libraries(memif ${LIB_BSD}) +-endif() +- +-foreach(file ${MEMIF_HEADERS}) +- get_filename_component(dir ${file} DIRECTORY) +- install( +- FILES ${file} +- DESTINATION include/${lib}/${dir} +- COMPONENT libmemif-dev +- ) +-endforeach() +- +-install(TARGETS memif DESTINATION lib COMPONENT libmemif) ++target_link_libraries(memif ${CMAKE_THREAD_LIBS_INIT}) |