Optimize cmake options and print summary
This commit is contained in:
parent
922bf624e7
commit
438ba6481d
|
@ -48,23 +48,6 @@ LIST(APPEND CMAKE_PREFIX_PATH third_party/glog/_build)
|
||||||
find_package(glog REQUIRED)
|
find_package(glog REQUIRED)
|
||||||
message(STATUS "Found glog: ${glog_VERSION}")
|
message(STATUS "Found glog: ${glog_VERSION}")
|
||||||
|
|
||||||
if(WITH_API)
|
|
||||||
include(cmake/DetectOpenCV.cmake)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_package(Boost COMPONENTS filesystem)
|
|
||||||
if(Boost_FOUND)
|
|
||||||
set(WITH_BOOST_FILESYSTEM true)
|
|
||||||
add_definitions(-DWITH_FILESYSTEM)
|
|
||||||
add_definitions(-DWITH_BOOST_FILESYSTEM)
|
|
||||||
message(STATUS "With boost filesystem: ${Boost_VERSION}")
|
|
||||||
#message(STATUS " Boost_LIBRARIES: ${Boost_LIBRARIES}")
|
|
||||||
elseif(OS_WIN)
|
|
||||||
add_definitions(-DWITH_FILESYSTEM)
|
|
||||||
add_definitions(-DWITH_NATIVE_FILESYSTEM)
|
|
||||||
message(STATUS "With native filesystem")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
LIST(APPEND CMAKE_MODULE_PATH cmake)
|
LIST(APPEND CMAKE_MODULE_PATH cmake)
|
||||||
|
|
||||||
include(CMakePackageConfigHelpers)
|
include(CMakePackageConfigHelpers)
|
||||||
|
@ -254,47 +237,6 @@ install(EXPORT ${MYNTEYE_NAME}-targets
|
||||||
|
|
||||||
## build.info
|
## build.info
|
||||||
|
|
||||||
macro(set_default_value VARIABLE DEFAULT)
|
|
||||||
if(NOT ${VARIABLE})
|
|
||||||
set(${VARIABLE} ${DEFAULT})
|
|
||||||
endif()
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
macro(set_version_values VARIABLE)
|
|
||||||
string(REPLACE "." ";" __version_list "${${VARIABLE}}")
|
|
||||||
list(LENGTH __version_list __len)
|
|
||||||
if(${__len} GREATER 0)
|
|
||||||
list(GET __version_list 0 ${VARIABLE}_MAJOR)
|
|
||||||
endif()
|
|
||||||
if(${__len} GREATER 1)
|
|
||||||
list(GET __version_list 1 ${VARIABLE}_MINOR)
|
|
||||||
endif()
|
|
||||||
if(${__len} GREATER 2)
|
|
||||||
list(GET __version_list 2 ${VARIABLE}_PATCH)
|
|
||||||
endif()
|
|
||||||
if(${__len} GREATER 3)
|
|
||||||
list(GET __version_list 3 ${VARIABLE}_TWEAK)
|
|
||||||
endif()
|
|
||||||
endmacro()
|
|
||||||
|
|
||||||
find_package(CUDA QUIET)
|
|
||||||
|
|
||||||
set_version_values(CMAKE_CXX_COMPILER_VERSION)
|
|
||||||
set_default_value(CMAKE_CXX_COMPILER_VERSION_MAJOR 0)
|
|
||||||
set_default_value(CMAKE_CXX_COMPILER_VERSION_MINOR 0)
|
|
||||||
set_default_value(CMAKE_CXX_COMPILER_VERSION_PATCH 0)
|
|
||||||
set_default_value(CMAKE_CXX_COMPILER_VERSION_TWEAK 0)
|
|
||||||
set_default_value(CUDA_VERSION_MAJOR 0)
|
|
||||||
set_default_value(CUDA_VERSION_MINOR 0)
|
|
||||||
set_default_value(OpenCV_VERSION_MAJOR 0)
|
|
||||||
set_default_value(OpenCV_VERSION_MINOR 0)
|
|
||||||
set_default_value(OpenCV_VERSION_PATCH 0)
|
|
||||||
set_default_value(OpenCV_VERSION_TWEAK 0)
|
|
||||||
set_default_value(${PROJECT_NAME}_VERSION_MAJOR 0)
|
|
||||||
set_default_value(${PROJECT_NAME}_VERSION_MINOR 0)
|
|
||||||
set_default_value(${PROJECT_NAME}_VERSION_PATCH 0)
|
|
||||||
set_default_value(${PROJECT_NAME}_VERSION_TWEAK 0)
|
|
||||||
|
|
||||||
configure_file(
|
configure_file(
|
||||||
cmake/templates/build.info.in
|
cmake/templates/build.info.in
|
||||||
build.info @ONLY
|
build.info @ONLY
|
||||||
|
|
|
@ -12,7 +12,126 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
include(${CMAKE_CURRENT_LIST_DIR}/IncludeGuard.cmake)
|
||||||
|
cmake_include_guard()
|
||||||
|
|
||||||
|
include(${CMAKE_CURRENT_LIST_DIR}/Utils.cmake)
|
||||||
|
|
||||||
|
|
||||||
|
# build components
|
||||||
|
|
||||||
option(WITH_API "Build with API layer, need OpenCV" ON)
|
option(WITH_API "Build with API layer, need OpenCV" ON)
|
||||||
|
|
||||||
message(STATUS "Options:")
|
# 3rdparty components
|
||||||
message(STATUS " WITH_API: ${WITH_API}")
|
|
||||||
|
option(WITH_BOOST "Include Boost support" ON)
|
||||||
|
|
||||||
|
|
||||||
|
# packages
|
||||||
|
|
||||||
|
if(WITH_API)
|
||||||
|
include(${CMAKE_CURRENT_LIST_DIR}/DetectOpenCV.cmake)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(WITH_BOOST)
|
||||||
|
find_package(Boost COMPONENTS filesystem)
|
||||||
|
if(Boost_FOUND)
|
||||||
|
set(Boost_VERSION_STRING "${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}")
|
||||||
|
set(WITH_FILESYSTEM TRUE)
|
||||||
|
set(WITH_BOOST_FILESYSTEM TRUE)
|
||||||
|
add_definitions(-DWITH_FILESYSTEM)
|
||||||
|
add_definitions(-DWITH_BOOST_FILESYSTEM)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT WITH_FILESYSTEM)
|
||||||
|
if(MSVC OR MSYS OR MINGW) # win
|
||||||
|
set(WITH_FILESYSTEM TRUE)
|
||||||
|
set(WITH_NATIVE_FILESYSTEM TRUE)
|
||||||
|
add_definitions(-DWITH_FILESYSTEM)
|
||||||
|
add_definitions(-DWITH_NATIVE_FILESYSTEM)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_package(CUDA QUIET)
|
||||||
|
|
||||||
|
# set default int values for yaml file (build.info)
|
||||||
|
set_version_values(CMAKE_CXX_COMPILER_VERSION)
|
||||||
|
set_default_value(CMAKE_CXX_COMPILER_VERSION_MAJOR 0)
|
||||||
|
set_default_value(CMAKE_CXX_COMPILER_VERSION_MINOR 0)
|
||||||
|
set_default_value(CMAKE_CXX_COMPILER_VERSION_PATCH 0)
|
||||||
|
set_default_value(CMAKE_CXX_COMPILER_VERSION_TWEAK 0)
|
||||||
|
set_default_value(CUDA_VERSION_MAJOR 0)
|
||||||
|
set_default_value(CUDA_VERSION_MINOR 0)
|
||||||
|
set_default_value(OpenCV_VERSION_MAJOR 0)
|
||||||
|
set_default_value(OpenCV_VERSION_MINOR 0)
|
||||||
|
set_default_value(OpenCV_VERSION_PATCH 0)
|
||||||
|
set_default_value(OpenCV_VERSION_TWEAK 0)
|
||||||
|
set_default_value(${PROJECT_NAME}_VERSION_MAJOR 0)
|
||||||
|
set_default_value(${PROJECT_NAME}_VERSION_MINOR 0)
|
||||||
|
set_default_value(${PROJECT_NAME}_VERSION_PATCH 0)
|
||||||
|
set_default_value(${PROJECT_NAME}_VERSION_TWEAK 0)
|
||||||
|
|
||||||
|
# summary
|
||||||
|
|
||||||
|
status("")
|
||||||
|
status("Platform:")
|
||||||
|
status(" HOST_OS: ${HOST_OS}")
|
||||||
|
status(" HOST_NAME: ${HOST_NAME}")
|
||||||
|
status(" HOST_ARCH: ${HOST_ARCH}")
|
||||||
|
status(" HOST_COMPILER: ${CMAKE_CXX_COMPILER_ID}")
|
||||||
|
status(" COMPILER_VERSION: ${CMAKE_CXX_COMPILER_VERSION}")
|
||||||
|
status(" COMPILER_VERSION_MAJOR: ${CMAKE_CXX_COMPILER_VERSION_MAJOR}")
|
||||||
|
status(" COMPILER_VERSION_MINOR: ${CMAKE_CXX_COMPILER_VERSION_MINOR}")
|
||||||
|
status(" COMPILER_VERSION_PATCH: ${CMAKE_CXX_COMPILER_VERSION_PATCH}")
|
||||||
|
status(" COMPILER_VERSION_TWEAK: ${CMAKE_CXX_COMPILER_VERSION_TWEAK}")
|
||||||
|
status(" CUDA_VERSION: ${CUDA_VERSION}")
|
||||||
|
status(" CUDA_VERSION_MAJOR: ${CUDA_VERSION_MAJOR}")
|
||||||
|
status(" CUDA_VERSION_MINOR: ${CUDA_VERSION_MINOR}")
|
||||||
|
status(" CUDA_VERSION_STRING: ${CUDA_VERSION_STRING}")
|
||||||
|
status(" OpenCV_VERSION: ${OpenCV_VERSION}")
|
||||||
|
status(" OpenCV_VERSION_MAJOR: ${OpenCV_VERSION_MAJOR}")
|
||||||
|
status(" OpenCV_VERSION_MINOR: ${OpenCV_VERSION_MINOR}")
|
||||||
|
status(" OpenCV_VERSION_PATCH: ${OpenCV_VERSION_PATCH}")
|
||||||
|
status(" OpenCV_VERSION_TWEAK: ${OpenCV_VERSION_TWEAK}")
|
||||||
|
status(" OpenCV_VERSION_STATUS: ${OpenCV_VERSION_STATUS}")
|
||||||
|
status(" OpenCV_WITH_WORLD: ${WITH_OPENCV_WORLD}")
|
||||||
|
status(" MYNTEYE_VERSION: ${mynteye_VERSION}")
|
||||||
|
status(" MYNTEYE_VERSION_MAJOR: ${mynteye_VERSION_MAJOR}")
|
||||||
|
status(" MYNTEYE_VERSION_MINOR: ${mynteye_VERSION_MINOR}")
|
||||||
|
status(" MYNTEYE_VERSION_PATCH: ${mynteye_VERSION_PATCH}")
|
||||||
|
status(" MYNTEYE_VERSION_TWEAK: ${mynteye_VERSION_TWEAK}")
|
||||||
|
|
||||||
|
status("")
|
||||||
|
status("Options:")
|
||||||
|
status(" WITH_API: ${WITH_API}")
|
||||||
|
if(WITH_API)
|
||||||
|
if(OpenCV_FOUND)
|
||||||
|
status(" OpenCV: YES")
|
||||||
|
status(" OpenCV_VERSION: ${OpenCV_VERSION}")
|
||||||
|
status(" OpenCV_WORLD: " IF WITH_OPENCV_WORLD "YES" ELSE "NO")
|
||||||
|
else()
|
||||||
|
status(" OpenCV: NO")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
status(" WITH_BOOST: ${WITH_BOOST}")
|
||||||
|
if(WITH_BOOST)
|
||||||
|
if(Boost_FOUND)
|
||||||
|
status(" Boost: YES")
|
||||||
|
status(" Boost_VERSION: ${Boost_VERSION_STRING}")
|
||||||
|
#status(" Boost_LIBRARIES: ${Boost_LIBRARIES}")
|
||||||
|
else()
|
||||||
|
status(" Boost: NO")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
status("")
|
||||||
|
status("Features:")
|
||||||
|
status(" Filesystem: "
|
||||||
|
IF WITH_BOOST_FILESYSTEM "boost"
|
||||||
|
ELIF WITH_NATIVE_FILESYSTEM "native"
|
||||||
|
ELSE "none"
|
||||||
|
)
|
||||||
|
|
||||||
|
status("")
|
||||||
|
|
|
@ -49,3 +49,88 @@ macro(make_executable NAME)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
# set_default_value(VARIABLE DEFAULT)
|
||||||
|
macro(set_default_value VARIABLE DEFAULT)
|
||||||
|
if(NOT ${VARIABLE})
|
||||||
|
set(${VARIABLE} ${DEFAULT})
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
# set_version_values(VARIABLE)
|
||||||
|
macro(set_version_values VARIABLE)
|
||||||
|
string(REPLACE "." ";" __version_list "${${VARIABLE}}")
|
||||||
|
list(LENGTH __version_list __len)
|
||||||
|
if(${__len} GREATER 0)
|
||||||
|
list(GET __version_list 0 ${VARIABLE}_MAJOR)
|
||||||
|
endif()
|
||||||
|
if(${__len} GREATER 1)
|
||||||
|
list(GET __version_list 1 ${VARIABLE}_MINOR)
|
||||||
|
endif()
|
||||||
|
if(${__len} GREATER 2)
|
||||||
|
list(GET __version_list 2 ${VARIABLE}_PATCH)
|
||||||
|
endif()
|
||||||
|
if(${__len} GREATER 3)
|
||||||
|
list(GET __version_list 3 ${VARIABLE}_TWEAK)
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
# status(TEXT [IF cond text [ELIF cond text] [ELSE cond text]])
|
||||||
|
macro(status TEXT)
|
||||||
|
set(options)
|
||||||
|
set(oneValueArgs)
|
||||||
|
set(multiValueArgs IF ELIF ELSE)
|
||||||
|
cmake_parse_arguments(THIS "${options}" "${oneValueArgs}"
|
||||||
|
"${multiValueArgs}" ${ARGN})
|
||||||
|
|
||||||
|
#message(STATUS "TEXT: ${TEXT}")
|
||||||
|
#message(STATUS "THIS_IF: ${THIS_IF}")
|
||||||
|
#message(STATUS "THIS_ELIF: ${THIS_ELIF}")
|
||||||
|
#message(STATUS "THIS_ELSE: ${THIS_ELSE}")
|
||||||
|
|
||||||
|
set(__msg_list "${TEXT}")
|
||||||
|
set(__continue TRUE)
|
||||||
|
|
||||||
|
if(__continue AND DEFINED THIS_IF)
|
||||||
|
#message(STATUS "-- THIS_IF: ${THIS_IF}")
|
||||||
|
list(LENGTH THIS_IF __if_len)
|
||||||
|
if(${__if_len} GREATER 1)
|
||||||
|
list(GET THIS_IF 0 __if_cond)
|
||||||
|
if(${__if_cond})
|
||||||
|
list(REMOVE_AT THIS_IF 0)
|
||||||
|
list(APPEND __msg_list ${THIS_IF})
|
||||||
|
set(__continue FALSE)
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "status() IF must have cond and text, >= 2 items")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(__continue AND DEFINED THIS_ELIF)
|
||||||
|
#message(STATUS "-- THIS_ELIF: ${THIS_ELIF}")
|
||||||
|
list(LENGTH THIS_ELIF __elif_len)
|
||||||
|
if(${__elif_len} GREATER 1)
|
||||||
|
list(GET THIS_ELIF 0 __elif_cond)
|
||||||
|
if(${__elif_cond})
|
||||||
|
list(REMOVE_AT THIS_ELIF 0)
|
||||||
|
list(APPEND __msg_list ${THIS_ELIF})
|
||||||
|
set(__continue FALSE)
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "status() ELIF must have cond and text, >= 2 items")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(__continue AND DEFINED THIS_ELSE)
|
||||||
|
#message(STATUS "-- THIS_ELSE: ${THIS_ELSE}")
|
||||||
|
list(LENGTH THIS_ELSE __else_len)
|
||||||
|
if(${__else_len} GREATER 0)
|
||||||
|
list(APPEND __msg_list ${THIS_ELSE})
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "status() ELSE must have text, >= 1 items")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
string(REPLACE ";" "" __msg_list "${__msg_list}")
|
||||||
|
message(STATUS "${__msg_list}")
|
||||||
|
endmacro()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user