include(CMakeForceCompiler) set(CMAKE_SYSTEM_NAME Generic) set(CMAKE_SYSTEM_VERSION 1) set(CMAKE_SYSTEM_PROCESSOR arm) set(CMAKE_SIZEOF_VOID_P 32) set(GENERIC 1) set(TI_TDA2XX_ARM_A15 1) set(GCC_COMPILER_VERSION "4.7" CACHE STRING "GCC Compiler version") set(FLOAT_ABI_SUFFIX "") set(ARM_NONE_SYSROOT /opt/ti/ccsv5/tools/compiler/gcc-arm-none-eabi-4_7-2012q4${FLOAT_ABI_SUFFIX} CACHE PATH "ARM cross compilation system root") set(CMAKE_LINKER "${ARM_NONE_SYSROOT}/bin/arm-none-eabi-ld" CACHE PATH "linker") set(CMAKE_AR "${ARM_NONE_SYSROOT}/bin/arm-none-eabi-ar" CACHE PATH "archiver") #set(CMAKE_C_COMPILER "${ARM_NONE_SYSROOT}/bin/arm-none-eabi-gcc" CACHE PATH "C compiler") #set(CMAKE_CXX_COMPILER "${ARM_NONE_SYSROOT}/bin/arm-none-eabi-g++" CACHE PATH "C++ compiler") cmake_force_c_compiler(${ARM_NONE_SYSROOT}/bin/arm-none-eabi-gcc GNU) cmake_force_cxx_compiler(${ARM_NONE_SYSROOT}/bin/arm-none-eabi-g++ GNU) ########################################################################## # Cmake C and CXX flags # ########################################################################## set(CMAKE_CXX_FLAGS "-DGENERIC_ARM -DGENERIC -D_POSIX_THREADS -O3" CACHE STRING "c++ flags") set(CMAKE_C_FLAGS "-DGENERIC_ARM -DGENERIC -D_POSIX_THREADS -O3" CACHE STRING "c flags") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=cortex-a15 -mtune=cortex-a15 -mfpu=neon -mfloat-abi=hard -mthumb -fdata-sections -Wa,--noexecstack -fsigned-char -Wno-psabi") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mcpu=cortex-a15 -mtune=cortex-a15 -mfpu=neon -mfloat-abi=hard -mthumb -fdata-sections -Wa,--noexecstack -fsigned-char -Wno-psabi") ########################################################################## # Cmake linker flags # ########################################################################## set(CMAKE_SHARED_LINKER_FLAGS "--specs=rdimon.specs -lgcc -lc -lm -lgloss-linux -lrdimon -lnosys" CACHE STRING "shared linker flags") set(CMAKE_MODULE_LINKER_FLAGS "--specs=rdimon.specs -lgcc -lc -lm -lgloss-linux -lrdimon -lnosys" CACHE STRING "module linker flags") set(CMAKE_EXE_LINKER_FLAGS "--specs=rdimon.specs -lgcc -lc -lm -lgloss-linux -lrdimon -lnosys -Wl,-z,nocopyreloc" CACHE STRING "executable linker flags") set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now ${CMAKE_SHARED_LINKER_FLAGS}") set(CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now ${CMAKE_MODULE_LINKER_FLAGS}") set(CMAKE_EXE_LINKER_FLAGS "-Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now ${CMAKE_EXE_LINKER_FLAGS}") if(USE_NEON) message(WARNING "You use obsolete variable USE_NEON to enable NEON instruction set. Use -DENABLE_NEON=ON instead." ) set(ENABLE_NEON TRUE) elseif(USE_VFPV3) message(WARNING "You use obsolete variable USE_VFPV3 to enable VFPV3 instruction set. Use -DENABLE_VFPV3=ON instead." ) set(ENABLE_VFPV3 TRUE) endif() set(CMAKE_FIND_ROOT_PATH ${CMAKE_FIND_ROOT_PATH} ${ARM_NONE_SYSROOT}) if(EXISTS ${CUDA_TOOLKIT_ROOT_DIR}) set(CMAKE_FIND_ROOT_PATH ${CMAKE_FIND_ROOT_PATH} ${CUDA_TOOLKIT_ROOT_DIR}) endif() 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()