From d7c6f8ae3f52d7442a7811fece2b6dc0168fa3c9 Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Tue, 23 Jun 2020 11:49:43 -0700 Subject: [PATCH] armel/armhf differentiation in builds --- CMakeLists.txt | 15 ++++++++++++++- packaging/debian.cmake | 6 ++++++ packaging/rpm.cmake | 4 ++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d9bfabe84..2cdc35fc4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -154,6 +154,12 @@ if(NOT PACKAGE_STATIC) option(BUILD_32BIT "Force building as 32-bit binary" OFF) option(BUILD_STATIC "Build statically linked executable" OFF) + option(BUILD_ARM_V5 "Build ARMv5" OFF) + option(BUILD_ARM_v6 "Build ARMv6" OFF) + + if (BUILD_ARM_V5 AND BUILD_ARM_V6) + message(FATAL_ERROR "BUILD_ARM_V5 and BUILD_ARM_V6 are mutually exclusive!") + endif() if(BUILD_32BIT) set(CMAKE_SYSTEM_PROCESSOR "x86" CACHE STRING "system processor") @@ -185,6 +191,13 @@ if(NOT PACKAGE_STATIC) ) endif(BUILD_STATIC) + if (BUILD_ARM_V5) + set(GOARM "GOARM=5") + endif (BUILD_ARM_V5) + + if (BUILD_ARM_v6) + set(GOARM "GOARM=6") + endif (BUILD_ARM_V6) endif(APPLE) endif(WIN32) @@ -230,7 +243,7 @@ if(NOT PACKAGE_STATIC) zerotier ALL BYPRODUCTS ${CMAKE_BINARY_DIR}/zerotier SOURCES ${go_src} - COMMAND ${CMAKE_COMMAND} -E env ${GOARCH} CGO_ENABLED=1 CGO_CFLAGS=\"-O3\" CGO_LDFLAGS=\"$ $ $ $ ${GO_EXTRA_LIBRARIES}\" ${GO} build ${GOFLAGS} -o ${CMAKE_BINARY_DIR}/${GO_EXE_NAME} ${CMAKE_SOURCE_DIR}/cmd/zerotier/zerotier.go + COMMAND ${CMAKE_COMMAND} -E env ${GOARCH} ${GOARM} CGO_ENABLED=1 CGO_CFLAGS=\"-O3\" CGO_LDFLAGS=\"$ $ $ $ ${GO_EXTRA_LIBRARIES}\" ${GO} build ${GOFLAGS} -o ${CMAKE_BINARY_DIR}/${GO_EXE_NAME} ${CMAKE_SOURCE_DIR}/cmd/zerotier/zerotier.go COMMENT "Compiling Go Code..." ) add_dependencies(zerotier zt_osdep zt_core zt_controller zt_service_io_core) diff --git a/packaging/debian.cmake b/packaging/debian.cmake index 4e7d17c8c..e03845101 100644 --- a/packaging/debian.cmake +++ b/packaging/debian.cmake @@ -19,4 +19,10 @@ set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/packaging/de set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT") +if(BUILD_ARM_V5) + set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "armel") +elseif(BUILD_ARM_V6) + set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "armhf") +endif() + include(CPack) diff --git a/packaging/rpm.cmake b/packaging/rpm.cmake index acc57def3..ff7f25613 100644 --- a/packaging/rpm.cmake +++ b/packaging/rpm.cmake @@ -18,6 +18,10 @@ set(CPACK_RPM_PACKAGE_OBSOLETES "zerotier-one") set(CPACK_PACKAGE_RELOCATABLE FALSE) if(BUILD_32BIT) set(CPACK_RPM_PACKAGE_ARCHITECTURE "i386") +elseif(BUILD_ARM_V5) + set(CPACK_RPM_PACKAGE_ARCHITECTURE "armel") +elseif(BUILD_ARM_V6) + set(CPACK_RPM_PACKAGE_ARCHITECTURE "armhf") endif() set(CPACK_RPM_PRE_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/packaging/rpm/rpm.pre")