Android 編譯
${HOME}/Android/Sdk/cmake/3.10.2.4988404/bin/cmake \
-DANDROID_ABI=arm64-v8a \
-DANDROID_NDK=${HOME}/Android/Sdk/ndk/22.0.7026061 \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_MAKE_PROGRAM=${HOME}/Android/Sdk/cmake/3.10.2.4988404/bin/ninja \
-DCMAKE_TOOLCHAIN_FILE=${HOME}/Android/Sdk/ndk/22.0.7026061/build/cmake/android.toolchain.cmake \
-DANDROID_NATIVE_API_LEVEL=28 \
-DANDROID_TOOLCHAIN=clang \
-GNinja \
-Dfdbus_ANDROID=ON \
-Dfdbus_LINK_PTHREAD_LIB=OFF \
-Dfdbus_ENABLE_LOG=ON \
-Dfdbus_LOG_TO_STDOUT=ON \
-Dfdbus_SOCKET_ENABLE_PEERCRED=ON \
-Dfdbus_ENABLE_MESSAGE_METADATA=ON \
-Dfdbus_UDS_ABSTRACT=ON \
-Dfdbus_ALLOC_PORT_BY_SYSTEM=ON \
-Dfdbus_BUILD_CLIB=OFF \
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/home/huibin/CLionProjects/fdbus_android/cmake/libs \
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=/home/huibin/CLionProjects/fdbus_android/cmake/bin \
${HOME}/Android/Sdk/cmake/3.10.2.4988404/bin/ninja
QNX 編譯
toolchain-qnx700-aarch64.cmake
SET(CMAKE_SYSTEM_NAME QNX)
SET(CMAKE_SYSTEM_VERSION 7.0.0)
#SET(CMAKE_SYSTEM_PROCESSOR armv7)
SET(CMAKE_SYSTEM_PROCESSOR aarch64)
SET(TOOLCHAIN QNX)
#SET(CMAKE_IMPORT_LIBRARY_SUFFIX ".a")
SET(CMAKE_SHARED_LIBRARY_PREFIX "lib")
SET(CMAKE_SHARED_LIBRARY_SUFFIX ".so")
SET(CMAKE_STATIC_LIBRARY_PREFIX "lib")
SET(CMAKE_STATIC_LIBRARY_SUFFIX ".a")
set(HOST_EXECUTABLE_SUFFIX "")
FIND_PATH(QNX_HOST
NAME usr/bin/qcc
PATHS $ENV{QNX_HOST} /home/huibin/qnx700/host/linux/x86_64
NO_CMAKE_PATH
NO_CMAKE_ENVIRONMENT_PATH
)
FIND_PATH(QNX_TARGET
NAME usr/include/qconfig.mk
PATHS $ENV{QNX_TARGET} /home/huibin/qnx700/target/qnx7
NO_CMAKE_PATH
NO_CMAKE_ENVIRONMENT_PATH
)
FIND_PATH(QNX_CONFIGURATION
NAME bin/qnxactivate
PATHS $ENV{QNX_CONFIGURATION}
"/home/huibin/.qnx"
NO_CMAKE_PATH
NO_CMAKE_ENVIRONMENT_PATH
)
SET(ENV{QNX_HOST} ${QNX_HOST})
SET(ENV{QNX_TARGET} ${QNX_TARGET})
SET(ENV{QNX_CONFIGURATION} ${QNX_CONFIGURATION})
SET(ENV{PATH} "$ENV{PATH};${QNX_HOST}/usr/bin")
SET(CMAKE_MAKE_PROGRAM "${QNX_HOST}/usr/bin/make${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX Make Program")
SET(CMAKE_SH "${QNX_HOST}/usr/bin/sh${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX shell Program")
SET(CMAKE_AR "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ar${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX ar Program")
SET(CMAKE_RANLIB "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ranlib${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX ranlib Program")
SET(CMAKE_NM "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-nm${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX nm Program")
SET(CMAKE_OBJCOPY "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-objcopy${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX objcopy Program")
SET(CMAKE_OBJDUMP "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-objdump${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX objdump Program")
SET(CMAKE_LINKER "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ld${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX Linker Program")
SET(CMAKE_STRIP "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-strip${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX Strip Program")
SET(CMAKE_C_COMPILER ${QNX_HOST}/usr/bin/aarch64-unknown-nto-qnx7.0.0-gcc${HOST_EXECUTABLE_SUFFIX})
SET(CMAKE_C_FLAGS_DEBUG "-g")
SET(CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG")
SET(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")
SET(CMAKE_CXX_COMPILER ${QNX_HOST}/usr/bin/aarch64-unknown-nto-qnx7.0.0-g++${HOST_EXECUTABLE_SUFFIX})
SET(CMAKE_CXX_FLAGS_DEBUG "-g")
SET(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG")
SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
SET(CMAKE_FIND_ROOT_PATH ${QNX_TARGET})
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
#SET(CMAKE_C_FLAGS "-Vgcc_ntoaarch64le" CACHE STRING "qcc c flags" FORCE)
#SET(CMAKE_CXX_FLAGS "-Vgcc_ntoaarch64le -lang-c++" CACHE STRING "qcc cxx flags" FORCE)
fdbus:
cmake \
-Dfdbus_SOCKET_ENABLE_PEERCRED=OFF \
-Dfdbus_PIPE_AS_EVENTFD=true \
-Dfdbus_LINK_SOCKET_LIB=true \
-Dfdbus_LINK_PTHREAD_LIB=OFF \
-DCMAKE_TOOLCHAIN_FILE=/home/huibin/toolchain-qnx700-aarch64.cmake \
-DCMAKE_INSTALL_PREFIX=./install
protobuf:
cmake \
-DCMAKE_TOOLCHAIN_FILE=/home/huibin/toolchain-qnx700-aarch64.cmake \
-Dprotobuf_BUILD_TESTS=OFF \
-DCMAKE_INSTALL_PREFIX=./install
ffmpeg
qnx:
./configure
--prefix=./install \
--cross-prefix=/home/huibin/qnx700/host/linux/x86_64/usr/bin/aarch64-unknown-nto-qnx7.0.0- \
--enable-cross-compile \
--pkg-config=pkg-config \
--target-os=qnx \
--arch=aarch64 \
--enable-shared \
--enable-static \
--enable-gpl \
--enable-nonfree \
--enable-asm \
--extra-cflags="-std=gnu99 -fPIC"
android
./configure \
--prefix=./install \
--target-os=android \
--arch=aarch64 \
--cpu=armv8-a \
--cross-prefix=${HOME}/Android/Sdk/ndk/22.0.7026061/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android- \
--cc=${HOME}/Android/Sdk/ndk/22.0.7026061/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android28-clang \
--cxx=${HOME}/Android/Sdk/ndk/22.0.7026061/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android28-clang++ \
--enable-cross-compile \
--pkg-config=pkg-config \
--enable-shared \
--disable-static \
--enable-gpl \
--enable-nonfree \
--enable-asm \
--enable-pic \
--extra-cflags="-std=gnu99 -fPIC"