From dd3952923a2cfb9fa2276a4f1f6512ff75e1a155 Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Tue, 15 Jan 2019 00:36:03 +0100 Subject: [PATCH] cmake: initial cross-compilation support Change-Id: Ib9c2aba1eda08a22465441e33553b9b744c79d56 Signed-off-by: Damjan Marion --- src/CMakeLists.txt | 11 +++++++++++ src/cmake/cpu.cmake | 5 ++++- src/plugins/dpdk/CMakeLists.txt | 5 +++++ src/vpp-api/python/CMakeLists.txt | 1 - 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index fedf931f041..b404b5069b4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -32,6 +32,16 @@ execute_process( string(REPLACE "-" ";" VPP_LIB_VERSION ${VPP_VERSION}) list(GET VPP_LIB_VERSION 0 VPP_LIB_VERSION) +############################################################################## +# cross compiling +############################################################################## +if(CMAKE_CROSSCOMPILING) + set(CMAKE_IGNORE_PATH + /usr/lib/${CMAKE_HOST_SYSTEM_PROCESSOR}-linux-gnu/ + /usr/lib/${CMAKE_HOST_SYSTEM_PROCESSOR}-linux-gnu/lib/ + ) +endif() + ############################################################################## # build config ############################################################################## @@ -123,6 +133,7 @@ pr("VPP library version" "${VPP_LIB_VERSION}") pr("GIT toplevel dir" "${VPP_GIT_TOPLEVEL_DIR}") pr("C flags" "${CMAKE_C_FLAGS}") pr("Linker flags" "${CMAKE_LINKER_FLAGS}") +pr("Host processor" "${CMAKE_HOST_SYSTEM_PROCESSOR}") pr("Target processor" "${CMAKE_SYSTEM_PROCESSOR}") pr("Build type" "${CMAKE_BUILD_TYPE}") pr("Prefix path" "${CMAKE_PREFIX_PATH}") diff --git a/src/cmake/cpu.cmake b/src/cmake/cpu.cmake index 20dab7bfce1..b2af1aa0926 100644 --- a/src/cmake/cpu.cmake +++ b/src/cmake/cpu.cmake @@ -14,7 +14,10 @@ ############################################################################## # Cache line size detection ############################################################################## -if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)") +if(CMAKE_CROSSCOMPILING) + message(STATUS "Cross-compiling - cache line size detection disabled") + set(VPP_LOG2_CACHE_LINE_SIZE 6) +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)") file(READ "/proc/cpuinfo" cpuinfo) string(REPLACE "\n" ";" cpuinfo ${cpuinfo}) foreach(l ${cpuinfo}) diff --git a/src/plugins/dpdk/CMakeLists.txt b/src/plugins/dpdk/CMakeLists.txt index 45605baada0..36a369c0a7b 100644 --- a/src/plugins/dpdk/CMakeLists.txt +++ b/src/plugins/dpdk/CMakeLists.txt @@ -11,6 +11,11 @@ # See the License for the specific language governing permissions and # limitations under the License. +if (CMAKE_CROSSCOMPILING) + # not supported yet + return() +endif() + ############################################################################## # Find lib and include files ############################################################################## diff --git a/src/vpp-api/python/CMakeLists.txt b/src/vpp-api/python/CMakeLists.txt index 52215ccafec..a81a6f66f63 100644 --- a/src/vpp-api/python/CMakeLists.txt +++ b/src/vpp-api/python/CMakeLists.txt @@ -12,7 +12,6 @@ # limitations under the License. find_package(PythonInterp 2.7) -find_package(PythonLibs 2.7) if(PYTHONINTERP_FOUND) install( -- 2.16.6