message(FATAL_ERROR "No platform is defined! see CMakeBuilding.txt under doc for details.")
endif()
+if(DEFINED NE10_ANDROID_TARGET_ARCH)
+ if(${NE10_ANDROID_TARGET_ARCH} STREQUAL "armv7")
+ set(NE10_TARGET_ARCH "armv7")
+ else()
+ set(NE10_TARGET_ARCH "aarch64")
+ endif()
+endif()
+
+if(DEFINED NE10_LINUX_TARGET_ARCH)
+ if(${NE10_LINUX_TARGET_ARCH} STREQUAL "armv7")
+ set(NE10_TARGET_ARCH "armv7")
+ else()
+ set(NE10_TARGET_ARCH "aarch64")
+ endif()
+endif()
+
+message("-- Target architecture : ${NE10_TARGET_ARCH}")
+
#select functionalities to be compiled
-if(${NE10_ANDROID_TARGET_ARCH} STREQUAL "armv7")
+if(${NE10_TARGET_ARCH} STREQUAL "armv7")
# Math module has not been optimized for aarch64.
option(NE10_ENABLE_MATH "Build math functionalities to NE10" ON)
endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --sysroot=${NDK_SYSROOT_PATH} -pie")
# Adding cflags for armv7. Aarch64 does not need such flags.
- if(${NE10_ANDROID_TARGET_ARCH} STREQUAL "armv7")
+ if(${NE10_TARGET_ARCH} STREQUAL "armv7")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mthumb-interwork -mthumb -march=armv7-a -mfloat-abi=${FLOAT_ABI} -mfpu=vfp3")
if(NE10_ARM_HARD_FLOAT)
# "--no-warn-mismatch" is needed for linker to suppress linker error about not all functions use VFP register to pass argument, eg.
${CMAKE_C_COMPILER}
${CMAKE_CXX_COMPILER}
${CMAKE_ASM_COMPILER}")
+ message("-- CMAKE_C_FLAGS:
+ ${CMAKE_C_FLAGS}")
elseif(GNULINUX_PLATFORM)
#TODO Development has been moved to android, GNULINUX_PLATFORM is not
# needed any more. GNULINUX_PLATFORM support needs to be removed.
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
+# Usage:
+# $ mkdir build && cd build
+# $ cmake -DCMAKE_TOOLCHAIN_FILE=path/of/GNUlinux_config.cmake ..
+# $ make
+#
+# Option:
+# - Choose target architecture
+# Target architecture can be specified by setting NE10_LINUX_TARGET_ARCH to
+# armv7 or aarch64 (Not done yet). Defaut is armv7.
+
set(GNULINUX_PLATFORM ON)
+#TODO: add support to AArch64 target
set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)
set(CMAKE_ASM_COMPILER arm-linux-gnueabihf-as)
+if(NOT DEFINED ENV{NE10_LINUX_TARGET_ARCH})
+ set(NE10_LINUX_TARGET_ARCH "armv7")
+else()
+ if($ENV{NE10_LINUX_TARGET_ARCH} STREQUAL "aarch64")
+ message(FATAL_ERROR "aarch64 on GNU Linux support has not been done yet.")
+ endif()
+ set(NE10_LINUX_TARGET_ARCH $ENV{NE10_LINUX_TARGET_ARCH})
+endif()
+
find_program(CMAKE_AR NAMES "arm-linux-gnueabihf-ar")
mark_as_advanced(CMAKE_AR)
find_program(CMAKE_RANLIB NAMES "arm-linux-gnueabihf-ranlib")
else()
set(NE10_ANDROID_TARGET_ARCH $ENV{NE10_ANDROID_TARGET_ARCH})
endif()
-message("-- Target architecture : ${NE10_ANDROID_TARGET_ARCH}")
if(DEFINED ENV{ANDROID_NDK})
if(NOT DEFINED ENV{ANDROID_API_LEVEL})
)
# Tell CMake these files need to be compiled with "-mfpu=neon"
- if(${NE10_ANDROID_TARGET_ARCH} STREQUAL "armv7")
+ if(${NE10_TARGET_ARCH} STREQUAL "armv7")
foreach(intrinsic_file ${NE10_MATH_INTRINSIC_SRCS})
set_source_files_properties(${intrinsic_file} PROPERTIES COMPILE_FLAGS "-mfpu=neon" )
endforeach(intrinsic_file)
)
# Tell CMake these files need to be compiled with "-mfpu=neon"
- if(${NE10_ANDROID_TARGET_ARCH} STREQUAL "armv7")
+ if(${NE10_TARGET_ARCH} STREQUAL "armv7")
# Following definition is only available under armv7.
add_definitions(-DENABLE_NE10_FIR_FLOAT_NEON)
add_definitions(-DENABLE_NE10_FIR_DECIMATE_FLOAT_NEON)
${PROJECT_SOURCE_DIR}/modules/imgproc/NE10_boxfilter.c
)
- if(${NE10_ANDROID_TARGET_ARCH} STREQUAL "armv7")
+ if(${NE10_TARGET_ARCH} STREQUAL "armv7")
# Following definition is only available under armv7.
add_definitions(-DENABLE_NE10_IMG_ROTATE_RGBA_NEON)
# Add image processing NEON files.
${PROJECT_SOURCE_DIR}/modules/imgproc/NE10_boxfilter.neon.c
)
# Tell CMake these files need to be compiled with "-mfpu=neon"
- if(${NE10_ANDROID_TARGET_ARCH} STREQUAL "armv7")
+ if(${NE10_TARGET_ARCH} STREQUAL "armv7")
foreach(intrinsic_file ${NE10_IMGPROC_INTRINSIC_SRCS})
set_source_files_properties(${intrinsic_file} PROPERTIES COMPILE_FLAGS "-mfpu=neon" )
endforeach(intrinsic_file)
${PROJECT_SOURCE_DIR}/modules/physics/NE10_physics.c
)
- if(${NE10_ANDROID_TARGET_ARCH} STREQUAL "armv7")
+ if(${NE10_TARGET_ARCH} STREQUAL "armv7")
# Following definition is only available under armv7.
add_definitions(-DENABLE_NE10_PHYSICS_COMPUTE_AABB_VEC2F_NEON)
add_definitions(-DENABLE_NE10_PHYSICS_RELATIVE_V_VEC2F_NEON)
${PROJECT_SOURCE_DIR}/modules/physics/NE10_physics.neon.c
)
# Tell CMake these files need to be compiled with "-mfpu=neon"
- if(${NE10_ANDROID_TARGET_ARCH} STREQUAL "armv7")
+ if(${NE10_TARGET_ARCH} STREQUAL "armv7")
foreach(intrinsic_file ${NE10_PHYSICS_INTRINSIC_SRCS})
set_source_files_properties(${intrinsic_file} PROPERTIES COMPILE_FLAGS "-mfpu=neon" )
endforeach(intrinsic_file)