mirror of https://github.com/opencv/opencv.git
parent
a77a2f357c
commit
6bb6039ebb
10 changed files with 190 additions and 19 deletions
@ -0,0 +1,114 @@ |
||||
set(TOOLCHAIN QNX) |
||||
set(CMAKE_SYSTEM_NAME QNX) |
||||
set(CMAKE_SYSTEM_VERSION 6.6.0) |
||||
set(CMAKE_SYSTEM_PROCESSOR armv7) |
||||
set(TARGET_OS QNX) |
||||
set(TARGET_ARCH ARMV7L) |
||||
set(TARGET_COMPILER GCC) |
||||
|
||||
set(CMAKE_DL_LIBS "") |
||||
set(CMAKE_SHARED_LIBRARY_PREFIX "lib") |
||||
set(CMAKE_SHARED_LIBRARY_SUFFIX ".so") |
||||
set(CMAKE_STATIC_LIBRARY_PREFIX "lib") |
||||
set(CMAKE_STATIC_LIBRARY_SUFFIX ".a") |
||||
|
||||
if("$ENV{QNX_HOST}" STREQUAL "") |
||||
message(FATAL_ERROR "QNX_HOST environment variable not found. Please set the variable to your host's build tools") |
||||
endif() |
||||
if("$ENV{QNX_TARGET}" STREQUAL "") |
||||
message(FATAL_ERROR "QNX_TARGET environment variable not found. Please set the variable to the qnx target location") |
||||
endif() |
||||
|
||||
if(CMAKE_HOST_WIN32) |
||||
set(HOST_EXECUTABLE_SUFFIX ".exe") |
||||
#convert windows paths to cmake paths |
||||
file(TO_CMAKE_PATH "$ENV{QNX_HOST}" QNX_HOST) |
||||
file(TO_CMAKE_PATH "$ENV{QNX_TARGET}" QNX_TARGET) |
||||
else() |
||||
set(QNX_HOST "$ENV{QNX_HOST}") |
||||
set(QNX_TARGET "$ENV{QNX_TARGET}") |
||||
endif() |
||||
|
||||
message(STATUS "using QNX_HOST ${QNX_HOST}") |
||||
message(STATUS "using QNX_TARGET ${QNX_TARGET}") |
||||
|
||||
set(CMAKE_C_COMPILER "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-gcc${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX C compiler") |
||||
set(CMAKE_CXX_COMPILER "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-g++${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX CXX compiler") |
||||
set(CMAKE_ASM_COMPILER "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-as${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX CXX compiler assembler") |
||||
set(CMAKE_LINKER "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ld${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX Linker Program") |
||||
set(CMAKE_MAKE_PROGRAM "${QNX_HOST}/usr/bin/make${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX Make Program") |
||||
set(CMAKE_AR "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ar${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX ar 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_RANLIB "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ranlib${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX ranlib Program") |
||||
set(CMAKE_SH "${QNX_HOST}/usr/bin/sh${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX shell Program") |
||||
set(CMAKE_STRIP "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-strip${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX Strip Program") |
||||
|
||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -g -D_DEBUG") |
||||
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -O3 -DNDEBUG") |
||||
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -g -D_DEBUG -ftree-vectorize") |
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O3 -DNDEBUG -ftree-vectorize") |
||||
|
||||
#set successful exit value on target system |
||||
set(THREADS_PTHREAD_ARG 0) |
||||
|
||||
add_definitions("-DTARGET_OS=QNX") |
||||
add_definitions("-DTARGET_ARCH=ARM") |
||||
add_definitions("-DOS_QNX") |
||||
add_definitions("-DARCH_ARM") |
||||
|
||||
# necessary for gmock |
||||
add_definitions("-DGTEST_HAS_PTHREAD=1") |
||||
|
||||
add_definitions(-D __GLIBCXX__="1") |
||||
|
||||
set(CMAKE_FIND_ROOT_PATH ${QNX_TARGET}) |
||||
|
||||
set(CMAKE_SKIP_RPATH TRUE CACHE BOOL "If set, runtime paths are not added when using shared libraries.") |
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) |
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) |
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY) |
||||
|
||||
# macro to find programs on the host OS |
||||
macro( find_host_program ) |
||||
set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER ) |
||||
set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER ) |
||||
set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER ) |
||||
if( CMAKE_HOST_WIN32 ) |
||||
set( WIN32 1 ) |
||||
set( UNIX ) |
||||
elseif( CMAKE_HOST_APPLE ) |
||||
set( APPLE 1 ) |
||||
set( UNIX ) |
||||
endif() |
||||
find_program( ${ARGN} ) |
||||
set( WIN32 ) |
||||
set( APPLE ) |
||||
set( UNIX 1 ) |
||||
set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY ) |
||||
set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY ) |
||||
set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY ) |
||||
endmacro() |
||||
|
||||
# macro to find packages on the host OS |
||||
macro( find_host_package ) |
||||
set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER ) |
||||
set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER ) |
||||
set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER ) |
||||
if( CMAKE_HOST_WIN32 ) |
||||
set( WIN32 1 ) |
||||
set( UNIX ) |
||||
elseif( CMAKE_HOST_APPLE ) |
||||
set( APPLE 1 ) |
||||
set( UNIX ) |
||||
endif() |
||||
find_package( ${ARGN} ) |
||||
set( WIN32 ) |
||||
set( APPLE ) |
||||
set( UNIX 1 ) |
||||
set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY ) |
||||
set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY ) |
||||
set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY ) |
||||
endmacro() |
Loading…
Reference in new issue