Water's Home

Just another Life Style

0%

CMake & Arm Cross compilation based Windows systems (CLion)

CMakeLists.txt

cmake_minimum_required(VERSION 3.12)
project(untitled1)

SET(CMAKE_SYSTEM_NAME Linux)

add_definitions(“-std=c++17”)

SET(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
SET(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)

if(${CMAKE_HOST_SYSTEM_NAME} MATCHES “Windows”)
set(BOOST_ROOT “C:/MinGW/msys/1.0/home/d/boost_1_68_0”)
else()
set(BOOST_ROOT /root/Downloads/boost_1_68_0)
endif()

set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)

find_package(Boost COMPONENTS regex system date_time timer REQUIRED)
if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
link_directories(“${Boost_INCLUDE_DIRS}/stage/lib”)
include_directories(sdk/inc)
link_directories(“sdk/lib”)
MESSAGE( STATUS “Boost_INCLUDE_DIRS = ${Boost_INCLUDE_DIRS}.”)
MESSAGE( STATUS “Boost_LIBRARIES = ${Boost_LIBRARIES}.”)
MESSAGE( STATUS “Boost_LIB_VERSION = ${Boost_LIB_VERSION}.”)

add\_executable(untitled1 main.cpp)

TARGET\_LINK\_LIBRARIES(untitled1 ${Boost\_LIBRARIES} "-lpthread" "-lpos" "-lrt" "-lpng" "-liconv" "-lfreetype" "-lz" "-l:libboost\_system.a")

endif()

GNUlinux_config.cmake

set(GNULINUX_PLATFORM ON)
set(CMAKE_SYSTEM_NAME “Linux”)
set(CMAKE_SYSTEM_PROCESSOR “arm”)

if(NOT DEFINED ENV{NE10_LINUX_TARGET_ARCH})
set(NE10_LINUX_TARGET_ARCH “armv7”)
else()
set(NE10_LINUX_TARGET_ARCH $ENV{NE10_LINUX_TARGET_ARCH})
endif()

if(NE10_LINUX_TARGET_ARCH STREQUAL “armv7”)
set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)
set(CMAKE_ASM_COMPILER arm-linux-gnueabihf-as)
find_program(CMAKE_AR NAMES “arm-linux-gnueabihf-ar”)
find_program(CMAKE_RANLIB NAMES “arm-linux-gnueabihf-ranlib”)
elseif(NE10_LINUX_TARGET_ARCH STREQUAL “aarch64”)
set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)
set(CMAKE_ASM_COMPILER aarch64-linux-gnu-as)
find_program(CMAKE_AR NAMES “aarch64-linux-gnu-ar”)
find_program(CMAKE_RANLIB NAMES “aarch64-linux-gnu-ranlib”)
endif()

mark_as_advanced(CMAKE_AR)
mark_as_advanced(CMAKE_RANLIB)

The Most Important Thing on Windows

cmake -DCMAKE_TOOLCHAIN_FILE=GNUlinux_config.cmake ..