aboutsummaryrefslogtreecommitdiffstats
path: root/extras/libmemif
diff options
context:
space:
mode:
authorMauro Sardara <msardara@cisco.com>2019-12-06 18:25:28 +0100
committerMauro Sardara <msardara@cisco.com>2019-12-10 17:50:49 +0100
commit3f21100e1d2ec47b64670a8b08d0c9d067bf9ef3 (patch)
tree6774ce7f2bc020b646366503eaa6acf2f0af13eb /extras/libmemif
parente8eda2c819b36555d9d6b080eaf8b4b1109d7646 (diff)
[HICN-430] Rework on CMake
Change way targets are defined: each project defines targets. Fix project BUILD flags Add build-extras bash script Rework build tree of extras folder, using ExternalProject_Add Change-Id: I82fa29896e54c8a033490eba013c3f0431bec9d0 Signed-off-by: Mauro Sardara <msardara@cisco.com>
Diffstat (limited to 'extras/libmemif')
-rw-r--r--extras/libmemif/CMakeLists.txt72
-rw-r--r--extras/libmemif/CMakeLists1.patch11
2 files changed, 33 insertions, 50 deletions
diff --git a/extras/libmemif/CMakeLists.txt b/extras/libmemif/CMakeLists.txt
index 3b2b87729..8d141510a 100644
--- a/extras/libmemif/CMakeLists.txt
+++ b/extras/libmemif/CMakeLists.txt
@@ -11,58 +11,34 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-set(CMAKE_MODULE_PATH
- ${CMAKE_MODULE_PATH}
- "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/Modules"
- "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules"
-)
-
-include(ExternalProject)
-include(Packaging)
-
-if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
- set(LIBMEMIF memif)
-endif()
-
-execute_process(
- COMMAND bash -c "if [ ! -d vpp ]; then
- git clone https://github.com/FDio/vpp.git -b stable/1908 --depth 1 vpp;
- else
- pushd vpp && git pull && popd;
- fi"
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-)
+cmake_minimum_required(VERSION 3.5)
+project(libmemif)
-execute_process(
- COMMAND ${CMAKE_COMMAND} -E
- remove_directory ${CMAKE_CURRENT_BINARY_DIR}/libmemif
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-)
-
-execute_process(
- COMMAND ${CMAKE_COMMAND} -E
- copy_directory vpp/extras/libmemif ${CMAKE_CURRENT_BINARY_DIR}/libmemif
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+list(APPEND MODULE_PATH
+ ${CMAKE_MODULE_PATH}
+ ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules
)
-execute_process(
- COMMAND ${CMAKE_COMMAND} -E rename ${CMAKE_CURRENT_BINARY_DIR}/libmemif/src
- ${CMAKE_CURRENT_BINARY_DIR}/libmemif/memif
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-)
+string(REPLACE ";" "|" MODULE_PATH "${MODULE_PATH}")
-execute_process(
- COMMAND
- ${CMAKE_COMMAND} -E
- copy ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists1.patch libmemif/CMakeLists.txt
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-)
+include(ExternalProject)
-execute_process(
- COMMAND ${CMAKE_COMMAND} -E
- copy ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists2.patch libmemif/memif/CMakeLists.txt
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ExternalProject_Add(libmemif
+ GIT_REPOSITORY https://github.com/FDio/vpp.git
+ GIT_TAG v19.08.1
+ GIT_SHALLOW TRUE
+ PREFIX ${CMAKE_CURRENT_BINARY_DIR}/libmemif
+ PATCH_COMMAND bash -c "cp ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists1.patch ./extras/libmemif/CMakeLists.txt && cp ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists2.patch ./extras/libmemif/src/CMakeLists.txt"
+ # Use the alternate list separator
+ # (https://cmake.org/cmake/help/latest/manual/cmake-language.7.html#lists)
+ LIST_SEPARATOR |
+ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_MODULE_PATH=${MODULE_PATH}
+ SOURCE_SUBDIR ./extras/libmemif
+ BUILD_COMMAND make package
+ INSTALL_COMMAND make DESTDIR=${DESTDIR} install
)
-include(Packaging)
-add_subdirectory(${CMAKE_CURRENT_BINARY_DIR}/libmemif ${CMAKE_CURRENT_BINARY_DIR}/libmemif) \ No newline at end of file
+if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
+ include(Packager)
+ make_packages()
+endif()
diff --git a/extras/libmemif/CMakeLists1.patch b/extras/libmemif/CMakeLists1.patch
index 012dc606c..91da8a7c9 100644
--- a/extras/libmemif/CMakeLists1.patch
+++ b/extras/libmemif/CMakeLists1.patch
@@ -16,7 +16,9 @@ cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
project(memif)
set(CMAKE_C_STANDARD 11)
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+list(APPEND CMAKE_MODULE_PATH
+ ${CMAKE_CURRENT_SOURCE_DIR}/cmake
+)
include(CheckCCompilerFlag)
include(CheckFunctionExists)
@@ -62,4 +64,9 @@ set(LIBMEMIF_LIBRARIES
"" FORCE
)
-add_subdirectory(memif) \ No newline at end of file
+add_subdirectory(src)
+
+if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
+ include(Packager)
+ make_packages()
+endif() \ No newline at end of file