1. 程式人生 > 其它 >cmake的環境變數設定

cmake的環境變數設定

開原始碼編譯一般都使用兩種,

一種是大部分通過autoconf的configure進行生成,這種可以通過configure --help瞭解可以通過配置哪些引數調整編譯的細節

另外一種是CMakeFile,而這種通過沒有configure。不過,可以通過cmake自身的語法來進行配置。

首先是CMAKE_TOOLCHAIN_FILE, 交叉編譯都需要設定這項,cmake -DCMAKE_TOOLCHAIN_FILE=aarch64.cmake, aarch64.cmake參考內容如下,主要是設定CXX對應的路徑

# This is required. target system name
SET(CMAKE_SYSTEM_NAME Linux)
SET(CMAKE_SYSTEM_PROCESSOR arm)

# this one not so much
#SET(CMAKE_SYSTEM_VERSION 7)

# specify the cross compiler
#SET(CMAKE_C_COMPILER $ENV{TOOLCHAIN_ROOT}/aarch64-unknown-nto-qnx7.0.0-gcc-5.4.0)
#SET(CMAKE_CXX_COMPILER $ENV{TOOLCHAIN_ROOT}/aarch64-unknown-nto-qnx7.0.0-g++-5.4.0)
SET(TOOLCHAIN_PATH /work/new_os/toolchains/aarch64--glibc--stable)
SET(CMAKE_SYSROOT ${TOOLCHAIN_PATH}/aarch64-buildroot-linux-gnu/sysroot)
SET(CMAKE_C_COMPILER ${TOOLCHAIN_PATH}/bin/aarch64-linux-gcc)
SET(CMAKE_CXX_COMPILER ${TOOLCHAIN_PATH}/bin/aarch64-linux-g++)

#SET(CMAKE_C_COMPILER $ENV{QNX_HOST}/usr/bin/qcc)
#SET(CMAKE_CXX_COMPILER $ENV{QNX_HOST}/usr/bin/qcc)

#SET(CMAKE_C_COMPILER_TARGET gcc_ntoaarch64le)
#SET(CMAKE_CXX_COMPILER_TARGET gcc_ntoaarch64le)

# where is the target environment
#SET(CMAKE_FIND_ROOT_PATH /work/ipu03/svs-qnx-nda/qnx700/target/qnx7/)

# search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)

# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

# configure Boost and Qt
#SET(QT_QMAKE_EXECUTABLE /opt/qt-embedded/qmake)
#SET(BOOST_ROOT /opt/boost_arm)

# OPENSSL_FOUND OPENSSL_INCLUDE_DIR OPENSSL_LIBRARIES
#SET(OPENSSL_ROOT_DIR /work/usr/openssl)
#SET(OPENSSL_USE_STATIC_LIBS TRUE)

對於CMakefile其他配置項,可以參考CMakefile是否存在,這類配置項都可以通過cmake -D<Variable>=<Value>"進行設定。

# Set of indiviual options
option(BUILD_SHARED_LIBS "Set to OFF to build static libraries" ON)
option(WITH_SYSTEMD "Set to ON to create unit files and systemd check on dlt-daemon startup" OFF)
option(WITH_SYSTEMD_WATCHDOG "Set to ON to use the systemd watchdog in dlt-daemon" OFF)
option(WITH_SYSTEMD_JOURNAL "Set to ON to use the systemd journal in dlt-system" OFF)
option(WITH_DOC "Set to ON to build documentation target" OFF)