|
| 1 | +# ############################################################################# |
| 2 | +# CMAKE CONFIGURATION |
| 3 | +# ############################################################################# |
| 4 | +cmake_minimum_required(VERSION 3.15 FATAL_ERROR) |
| 5 | + |
| 6 | +set(CMAKE_BUILD_TYPE_INIT Release) |
| 7 | +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") |
| 8 | + |
| 9 | +include("${CMAKE_CURRENT_LIST_DIR}/cmake/functions.cmake") |
| 10 | + |
| 11 | +project(upsampling_cloud VERSION 1.1.0 LANGUAGES CXX) |
| 12 | + |
| 13 | +message("\n" "=========================================") |
| 14 | +message("Project: ${PROJECT_NAME} ") |
| 15 | +message("=========================================") |
| 16 | + |
| 17 | +# set the CMP0074 policy to old behavior (disable warnings) (CMake 3.12.0-rc1) |
| 18 | +if(${CMAKE_VERSION} MATCHES 3.12.0) |
| 19 | + cmake_policy(SET CMP0074 OLD) |
| 20 | + |
| 21 | + if(POLICY CMP0048) |
| 22 | + cmake_policy(SET CMP0048 NEW) |
| 23 | + endif(POLICY CMP0048) |
| 24 | +endif() |
| 25 | + |
| 26 | +# ############################################################################# |
| 27 | +# PACKAGES |
| 28 | +# ############################################################################# |
| 29 | +find_package(PCL 1.8 REQUIRED QUIET) |
| 30 | + |
| 31 | +if(PCL_FOUND) |
| 32 | + message(STATUS "PCL status:") |
| 33 | + message(STATUS " version: ${PCL_VERSION}") |
| 34 | + message(STATUS " directory: ${PCL_DIR}") |
| 35 | +else() |
| 36 | + message(FATAL_ERROR " ERROR: PCL minimum required version 1.8. Not found") |
| 37 | +endif() |
| 38 | + |
| 39 | +fetch_project( |
| 40 | + NAME cloudparse |
| 41 | + URL https://github.com/danielTobon43/cloudparse/archive/v0.2.1.tar.gz |
| 42 | +) |
| 43 | + |
| 44 | +# ############################################################################# |
| 45 | +# SOURCE CODE |
| 46 | +# ############################################################################# |
| 47 | +set(MAIN_SOURCE "src/main.cpp") |
| 48 | + |
| 49 | +# ############################################################################# |
| 50 | +# EXECUTABLES |
| 51 | +# ############################################################################# |
| 52 | +add_executable(${PROJECT_NAME} ${MAIN_SOURCE}) |
| 53 | + |
| 54 | +# ############################################################################# |
| 55 | +# HEADERS |
| 56 | +# ############################################################################# |
| 57 | +target_include_directories(${PROJECT_NAME} PRIVATE |
| 58 | + ${PCL_INCLUDE_DIRS} |
| 59 | +) |
| 60 | + |
| 61 | +# ############################################################################# |
| 62 | +# TARGET LIBRARIES |
| 63 | +# ############################################################################# |
| 64 | +target_link_libraries(${PROJECT_NAME} PRIVATE |
| 65 | + ${PCL_LIBRARIES} |
| 66 | + cloudparse |
| 67 | +) |
| 68 | + |
| 69 | +# ############################################################################# |
| 70 | +# COMPILATION FLAGS: MMX, SSE(1, 2, 3, 3S, 4.1, 4.2), CLMUL, RdRand, VT-x, x86-64 |
| 71 | +# ############################################################################# |
| 72 | +target_compile_options(${PROJECT_NAME} PRIVATE -Wno-cpp |
| 73 | + -mmmx |
| 74 | + -msse |
| 75 | + -msse2 |
| 76 | + -msse3 |
| 77 | + -mssse3 |
| 78 | + -msse4.2 |
| 79 | + -msse4.1 |
| 80 | + -mno-sse4a |
| 81 | + -mno-avx |
| 82 | + -mno-avx2 |
| 83 | + -mno-fma |
| 84 | + -mno-fma4 |
| 85 | + -mno-f16c |
| 86 | + -mno-xop |
| 87 | + -mno-bmi |
| 88 | + -mno-bmi2 |
| 89 | + -mrdrnd |
| 90 | + -mno-3dnow |
| 91 | + -mlzcnt |
| 92 | + -mfsgsbase |
| 93 | + -mpclmul |
| 94 | +) |
| 95 | + |
| 96 | +# ############################################################################# |
| 97 | +# INSTALL DIRECTORY |
| 98 | +# ############################################################################# |
| 99 | +install(TARGETS ${PROJECT_NAME} |
| 100 | + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} |
| 101 | + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} |
| 102 | +) |
| 103 | + |
| 104 | +message("=========================================") |
| 105 | +message("Project: ${PROJECT_NAME} COMPILED WITH CMAKE " ${CMAKE_VERSION}) |
| 106 | +message("=========================================") |
0 commit comments