From 7f0b4986d7b3d55280ace7fbf60afa59bbcab5e9 Mon Sep 17 00:00:00 2001 From: Leo Date: Wed, 18 Dec 2019 22:31:04 +0800 Subject: [PATCH] Downgrade minimum cmake required to 2.8.12 (#1429) * Downgrade minimum cmake required to 2.8 In some embedded system, the cmake version is still 2.8.x. So use SET instead of APPEND to adapt to more envir. * Set cmake minimum required version to 2.8.12 * Adapt for cmake 2.8.12 using target_compile_options instead of feature * Fix openmp compiling error on cmake 2.8.12 --- CMakeLists.txt | 2 +- src/CMakeLists.txt | 10 +++++++--- tools/caffe/CMakeLists.txt | 2 +- tools/onnx/CMakeLists.txt | 2 +- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6f794a21e..de0155b56 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,7 @@ if(NOT DEFINED CMAKE_INSTALL_PREFIX) endif() message(STATUS "CMAKE_INSTALL_PREFIX = ${CMAKE_INSTALL_PREFIX}") -cmake_minimum_required(VERSION 3.10) +cmake_minimum_required(VERSION 2.8.12) if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE release CACHE STRING "Choose the type of build" FORCE) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f3d29b340..9f31c89c8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -137,7 +137,7 @@ macro(ncnn_add_layer class) endif() # generate layer_type_enum file - string(APPEND layer_type_enum "${class} = ${__LAYER_TYPE_ENUM_INDEX},\n") + set(layer_type_enum "${layer_type_enum}${class} = ${__LAYER_TYPE_ENUM_INDEX},\n") math(EXPR __LAYER_TYPE_ENUM_INDEX "${__LAYER_TYPE_ENUM_INDEX}+1") endmacro() @@ -319,11 +319,15 @@ endif() add_dependencies(ncnn generate-spirv) -if(NCNN_OPENMP AND OpenMP_CXX_FOUND) +if(NCNN_OPENMP AND (OpenMP_CXX_FOUND OR OPENMP_FOUND)) if(NCNN_CMAKE_VERBOSE) message("Building with OpenMP") endif() - target_link_libraries(ncnn PUBLIC OpenMP::OpenMP_CXX) + if(OpenMP_CXX_FOUND) + target_link_libraries(ncnn PUBLIC OpenMP::OpenMP_CXX) + else() + target_link_libraries(ncnn PRIVATE "${OpenMP_CXX_FLAGS}") + endif() endif() if(NCNN_INSTALL_SDK) diff --git a/tools/caffe/CMakeLists.txt b/tools/caffe/CMakeLists.txt index 31d81ab9d..3bed38dfb 100644 --- a/tools/caffe/CMakeLists.txt +++ b/tools/caffe/CMakeLists.txt @@ -8,7 +8,7 @@ if(PROTOBUF_FOUND) PRIVATE ${PROTOBUF_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) - target_compile_features(caffe2ncnn PRIVATE cxx_std_11) + target_compile_options(caffe2ncnn PRIVATE -std=c++11) target_link_libraries(caffe2ncnn PRIVATE ${PROTOBUF_LIBRARIES}) else() message(WARNING "Protobuf not found, caffe model convert tool won't be built") diff --git a/tools/onnx/CMakeLists.txt b/tools/onnx/CMakeLists.txt index a869ca7b9..381cb67b0 100644 --- a/tools/onnx/CMakeLists.txt +++ b/tools/onnx/CMakeLists.txt @@ -8,7 +8,7 @@ if(PROTOBUF_FOUND) PRIVATE ${PROTOBUF_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) - target_compile_features(onnx2ncnn PRIVATE cxx_std_11) + target_compile_options(onnx2ncnn PRIVATE -std=c++11) target_link_libraries(onnx2ncnn PRIVATE ${PROTOBUF_LIBRARIES}) else() message(WARNING "Protobuf not found, onnx model convert tool won't be built")