cmake_minimum_required(VERSION 3.0.2) project(slam_localization VERSION 2022 LANGUAGES CXX C ) IF ( DEFINED TEST_TOOLCHAIN_ROOT ) message ( "compile ARM, targetf ${TEST_TOOLCHAIN_ROOT}" ) add_definitions ( "-O2" ) set ( TEST_COMPILER_ROOT "${TEST_TOOLCHAIN_ROOT}/gcc-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin" ) set ( CMAKE_SYSTEM_NAME Linux ) set ( CMAKE_SYSTEM_PROCESSOR arm ) set ( CMAKE_CXX_COMPILER ${TEST_COMPILER_ROOT}/aarch64-none-linux-gnu-g++ ) set ( CMAKE_C_COMPILER ${TEST_COMPILER_ROOT}/aarch64-none-linux-gnu-gcc ) set ( CMAKE_CXX_STANDARD 14 ) set ( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -O0 -Wall -g2 -ggdb" ) set ( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O3 -Wall" ) # set ( CMAKE_SYSROOT ${TEST_TOOLCHAIN_ROOT}/targetfs ) ELSE () add_definitions ( "-std=c++14 -Wall -g" ) # add_definitions ( "-std=c++14 -Wall -O2" ) ENDIF () set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w" ) set ( CMAKE_BUILD_TYPE Release ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -pthread -g -no-pie" ) set ( CFLAGS "${CFLAGS} -fPIC" ) set ( CXXFLAGS "${CXXFLAGS} -fPIC" ) add_compile_options ( -fPIC ) # Add compile options for the project add_compile_options ( -Wno-reorder ) add_compile_options(-Wno-sign-compare) add_compile_options(-Wno-unused-variable) set (3rdparty_dir ${PROJECT_SOURCE_DIR}/3rdparty) include_directories ( ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/wrappers ${CMAKE_SOURCE_DIR}/modules/common/inc/ap-cm-wrapper ${CMAKE_SOURCE_DIR}/generated/includes ) if ( NOT DEFINED TEST_TOOLCHAIN_ROOT AND CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86_64" ) set ( ARCH ubuntu ) set ( CMAKE_BUILD_TYPE Debug ) else () set ( ARCH arm ) endif () include (${PROJECT_SOURCE_DIR}/cmake/slam_dependency.cmake ) #add_subdirectory (${PROJECT_SOURCE_DIR}/ego ) add_subdirectory (${PROJECT_SOURCE_DIR}/vision ) add_subdirectory ( ${PROJECT_SOURCE_DIR}/src ) #add_subdirectory ( ${PROJECT_SOURCE_DIR}/viewer) set ( OUTPUT ${CMAKE_BINARY_DIR} ) file(GLOB CONFIG_FILES "${PROJECT_SOURCE_DIR}/data/*" ) file(COPY ${CONFIG_FILES} DESTINATION ${OUTPUT}/data) file(GLOB SOURCES_FILES ${PROJECT_SOURCE_DIR}/wrappers/*.cpp ${CMAKE_SOURCE_DIR}/generated/src/jac/ap/slamservice/*.cpp ${CMAKE_SOURCE_DIR}/generated/src/jac/ap/canservice/*.cpp ) add_executable(SlamExe ${SOURCES_FILES} main.cpp) target_link_libraries(SlamExe slam_static -llog common )