From e2e6c2393953d1ad079003e3383bbbedd40d4790 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=EC=98=A4=ED=98=95=EC=84=9D/=EB=8F=99=EC=9E=91=EC=A0=9C?= =?utf8?q?=EC=96=B4Lab=28SR=29/Senior=20Engineer/=EC=82=BC=EC=84=B1?= =?utf8?q?=EC=A0=84=EC=9E=90?= Date: Wed, 7 Mar 2018 10:54:36 +0900 Subject: [PATCH] CMake variable: TARGET_ARCH (#40) * CMake variable: TARGET_ARCH Define and use TARGET_ARCH in CMake Remain HOST_ARCH for cross-architecture build and run (not used yet) * Define TARGET_OS Define TARGET_OS to avoid confusion about target environment Signed-off-by: Hyeongseok Oh --- CMakeLists.txt | 22 +++++++++++++++++++--- Makefile | 2 +- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6a04e31..69d2c20 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,11 @@ if(NOT HOST_ARCH OR "${HOST_ARCH}" STREQUAL "") set(HOST_ARCH ${CMAKE_HOST_SYSTEM_PROCESSOR}) endif() +# set target platform to run +if(NOT TARGET_ARCH OR "${TARGET_ARCH}" STREQUAL "") + set(TARGET_ARCH "${HOST_ARCH}") +endif() + if("${HOST_ARCH}" STREQUAL "x86_64") set(HOST_ARCH_BASE ${HOST_ARCH}) elseif("${HOST_ARCH}" STREQUAL "armv7l") @@ -21,15 +26,26 @@ else() message(FATAL_ERROR "'${HOST_ARCH}' architecture is not supported") endif() +if("${TARGET_ARCH}" STREQUAL "x86_64") + set(TARGET_ARCH_BASE ${TARGET_ARCH}) +elseif("${TARGET_ARCH}" STREQUAL "armv7l") + set(TARGET_ARCH_BASE "arm") +else() + message(FATAL_ERROR "'${TARGET_ARCH}' architecture is not supported") +endif() + # TODO add Tizen +# We don't allow cross-os build now set(HOST_OS "linux") +set(TARGET_OS ${HOST_OS}) -# host platform name +# host & target platform name set(HOST_PLATFORM "${HOST_ARCH}-${HOST_OS}") +set(TARGET_PLATFORM "${TARGET_ARCH}-${TARGET_OS}") # platform specific options -include("cmake/os/${HOST_OS}/option.cmake") -include("cmake/arch/${HOST_ARCH_BASE}/option_${HOST_ARCH}.cmake") +include("cmake/os/${TARGET_OS}/option.cmake") +include("cmake/arch/${TARGET_ARCH_BASE}/option_${TARGET_ARCH}.cmake") # add common flags foreach(FLAG ${FLAGS_COMMON}) diff --git a/Makefile b/Makefile index e15dae0..34b29bf 100644 --- a/Makefile +++ b/Makefile @@ -55,7 +55,7 @@ configure_internal: mkdir -p $(BUILD_ROOT) cmake -B$(CURDIR)/$(BUILD_ROOT) -H$(CURDIR) \ -DCMAKE_INSTALL_PREFIX=$(INSTALL_PATH) \ - -DCMAKE_BUILD_TYPE=$(BUILD_TYPE_LC) -DHOST_ARCH=$(TARGET_ARCH_LC) \ + -DCMAKE_BUILD_TYPE=$(BUILD_TYPE_LC) -DTARGET_ARCH=$(TARGET_ARCH_LC) \ -DCMAKE_TOOLCHAIN_FILE=$(TOOLCHAIN_FILE) touch $(TIMESTAMP_CONFIGURE) -- 2.7.4