From 1674ec40610936657f8417e1d2de99e2ca5d6ae1 Mon Sep 17 00:00:00 2001 From: Joao Carreira Date: Sat, 13 Feb 2021 03:40:56 +0000 Subject: [PATCH] Add missing information --- cmake/ModulesFct.cmake | 97 +++++++++++++++++------------------ cmake/Win32.cmake | 112 +++++++++++++++++++++++------------------ 2 files changed, 110 insertions(+), 99 deletions(-) diff --git a/cmake/ModulesFct.cmake b/cmake/ModulesFct.cmake index f0798b2..3d0c928 100644 --- a/cmake/ModulesFct.cmake +++ b/cmake/ModulesFct.cmake @@ -1,67 +1,64 @@ - -MACRO(ADD_EXTRA_MODULES dir) - SET( MODULE_LOCATION "${dir}/" ) - ADD_SUBDIRECTORY( ${dir} ${CMAKE_CURRENT_BINARY_DIR}/extra-modules ) - INCLUDE_DIRECTORIES( ${dir} ) - SET( MODULE_LOCATION "${dir}/" PARENT_SCOPE ) -ENDMACRO() - -MACRO(ADD_MODULE name file ) +# General function to add a module It receives the name of the module and the filename where it is defined. Used in modules/CMakeLists.txt +MACRO(ADD_MODULE name file) SET(__modulename "Module${name}") - OPTION(MODULE_${name} "Use module ${name}" ON ) - ADD_FEATURE_INFO(${name} MODULE_${name} "Module ${name}" ) - IF( MODULE_${name} ) - list(APPEND Calyp_Mod_SRCS ${MODULE_LOCATION}${file} ) - LIST(APPEND MODULES_LIST_NAME ${name} ) - LIST(APPEND MODULES_LIST_FILES ${file} ) - SET( Calyp_Mod_SRCS "${Calyp_Mod_SRCS}" PARENT_SCOPE ) - SET( MODULES_LIST_NAME "${MODULES_LIST_NAME}" PARENT_SCOPE ) - SET( MODULES_LIST_FILES "${MODULES_LIST_FILES}" PARENT_SCOPE ) + OPTION(MODULE_${name} "Use module ${name}" ON) + ADD_FEATURE_INFO(${name} MODULE_${name} "Module ${name}") + IF(MODULE_${name}) + LIST(APPEND Calyp_Mod_SRCS ${MODULE_LOCATION}${file}) + LIST(APPEND MODULES_LIST_NAME ${name}) + LIST(APPEND MODULES_LIST_FILES ${file}) + SET(Calyp_Mod_SRCS + "${Calyp_Mod_SRCS}" + PARENT_SCOPE) + SET(MODULES_LIST_NAME + "${MODULES_LIST_NAME}" + PARENT_SCOPE) + SET(MODULES_LIST_FILES + "${MODULES_LIST_FILES}" + PARENT_SCOPE) ENDIF() UNSET(__modulename) ENDMACRO() - -MACRO(ADD_MODULE_USE_OPENCV name file ) - IF( USE_OPENCV ) - SET( ADD_MODULE_USE_OPENCV_VERSION "2.4" ) - CMAKE_PARSE_ARGUMENTS(ADD_MODULE_USE_OPENCV "" "VERSION" "MODULES" ${ARGN} ) - IF( NOT ( ${OpenCV_VERSION} VERSION_LESS ${ADD_MODULE_USE_OPENCV_VERSION} ) ) - SET( _HAS_MODULES TRUE ) - FOREACH(opencv_module IN LISTS ADD_MODULE_USE_OPENCV_MODULES ) - string(TOUPPER "${opencv_module}" opencv_moduleUP) - FIND_PACKAGE( OpenCV QUIET COMPONENTS ${opencv_module} ) - IF( NOT ${OPENCV_${opencv_moduleUP}_FOUND} EQUAL "1" ) - SET( _HAS_MODULES FALSE ) +# General function to add a module It receives the name of the module and the filename where it is defined. Moreover it receives a VERSION and MODULES +# (OpenCV modules required) Used in modules/CMakeLists.txt +MACRO(ADD_MODULE_USE_OPENCV name file) + IF(USE_OPENCV) + SET(ADD_MODULE_USE_OPENCV_VERSION "2.4") + CMAKE_PARSE_ARGUMENTS(ADD_MODULE_USE_OPENCV "" "VERSION" "MODULES" ${ARGN}) + IF(NOT (${OpenCV_VERSION} VERSION_LESS ${ADD_MODULE_USE_OPENCV_VERSION})) + SET(_HAS_MODULES TRUE) + FOREACH(opencv_module IN LISTS ADD_MODULE_USE_OPENCV_MODULES) + STRING(TOUPPER "${opencv_module}" opencv_moduleUP) + FIND_PACKAGE(OpenCV QUIET COMPONENTS ${opencv_module}) + IF(NOT ${OPENCV_${opencv_moduleUP}_FOUND} EQUAL "1") + SET(_HAS_MODULES FALSE) ELSE() - LIST(APPEND OPENCV_MODULES ${opencv_module} ) + LIST(APPEND OPENCV_MODULES ${opencv_module}) ENDIF() ENDFOREACH() - IF( _HAS_MODULES ) - ADD_MODULE( ${name} ${file} ) + IF(_HAS_MODULES) + ADD_MODULE(${name} ${file}) ENDIF() - UNSET( OPENCV_${opencv_moduleUP}_FOUND ) - UNSET( _HAS_MODULES ) + UNSET(OPENCV_${opencv_moduleUP}_FOUND) + UNSET(_HAS_MODULES) ENDIF() - UNSET( ADD_MODULE_USE_OPENCV_VERSION ) + UNSET(ADD_MODULE_USE_OPENCV_VERSION) ENDIF() ENDMACRO() - -# # Create header -# -MACRO(CREATE_MODULE_MACROS ) - file( WRITE ${CMAKE_CURRENT_BINARY_DIR}/ModulesListHeader.h "// This files add the header files of each module\n" - "#ifndef __MODULESLISTHEADER_H__\n#define __MODULESLISTHEADER_H__\n" ) - foreach(module ${MODULES_LIST_FILES}) - file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/ModulesListHeader.h "#include \"${module}.h\"\n") - endforeach(module ${MODULES_LIST_FILES}) +MACRO(CREATE_MODULE_MACROS) + FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ModulesListHeader.h "// This files add the header files of each module\n" + "#ifndef __MODULESLISTHEADER_H__\n#define __MODULESLISTHEADER_H__\n") + FOREACH(module ${MODULES_LIST_FILES}) + FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/ModulesListHeader.h "#include \"${module}.h\"\n") + ENDFOREACH(module ${MODULES_LIST_FILES}) - file( APPEND ${CMAKE_CURRENT_BINARY_DIR}/ModulesListHeader.h "#define REGISTER_ALL_MODULES \\\n" ) - foreach(module ${MODULES_LIST_NAME}) - file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/ModulesListHeader.h "Register( \"${module}\", &(${module}::Create) ); \\\n") - endforeach(module ${MODULES_LIST_NAME}) + FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/ModulesListHeader.h "#define REGISTER_ALL_MODULES \\\n") + FOREACH(module ${MODULES_LIST_NAME}) + FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/ModulesListHeader.h "Register( \"${module}\", &(${module}::Create) ); \\\n") + ENDFOREACH(module ${MODULES_LIST_NAME}) - file( APPEND ${CMAKE_CURRENT_BINARY_DIR}/ModulesListHeader.h "\n#endif // __MODULESLISTHEADER_H__\n" ) + FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/ModulesListHeader.h "\n#endif // __MODULESLISTHEADER_H__\n") ENDMACRO() diff --git a/cmake/Win32.cmake b/cmake/Win32.cmake index b37c6da..877c788 100644 --- a/cmake/Win32.cmake +++ b/cmake/Win32.cmake @@ -1,63 +1,77 @@ -##################################################################################### +# #################################################################################################################################################### # DLLs and Win32 specific code -###################################################################################### +# #################################################################################################################################################### -foreach( OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES} ) - string( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG ) - set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} "." ) - set( CMAKE_LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} "." ) - set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} "." ) -endforeach( OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES ) +FOREACH(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES}) + STRING(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG) + SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ".") + SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ".") + SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ".") +ENDFOREACH(OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES) -SET(MSVC_DLL_DIR "MSVC_DLL_DIR" CACHE PATH "Where to find MSVC dlls") -#INSTALL(FILES ${MSVC_DLL_DIR}/msvcr120.dll DESTINATION bin ) -#INSTALL(FILES ${MSVC_DLL_DIR}/msvcp120.dll DESTINATION bin ) +SET(MSVC_DLL_DIR + "MSVC_DLL_DIR" + CACHE PATH "Where to find MSVC dlls") +# INSTALL(FILES ${MSVC_DLL_DIR}/msvcr120.dll DESTINATION bin ) INSTALL(FILES ${MSVC_DLL_DIR}/msvcp120.dll DESTINATION bin ) -SET(QT_DIR "QT-Dir" CACHE PATH "Where to find QT Lib on Windows") -SET(QT_ICU_VERSION "" CACHE STRING "Qt ICU version of dll's" ) -SET(QT_DLL_POSTFIX "" CACHE STRING "Postfix to dll's name for debug" ) -SET(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH} ${QT_DIR}" ) +SET(QT_DIR + "QT-Dir" + CACHE PATH "Where to find QT Lib on Windows") +SET(QT_ICU_VERSION + "" + CACHE STRING "Qt ICU version of dll's") +SET(QT_DLL_POSTFIX + "" + CACHE STRING "Postfix to dll's name for debug") +SET(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH} ${QT_DIR}") -SET(WINDLLIB "Dl-location" CACHE PATH "Where to find DL Lib on Windows") +SET(WINDLLIB + "Dl-location" + CACHE PATH "Where to find DL Lib on Windows") +IF(NOT USE_QT4) + INSTALL(FILES ${QT_DIR}/bin/Qt5Core${QT_DLL_POSTFIX}.dll DESTINATION bin) + INSTALL(FILES ${QT_DIR}/bin/Qt5Gui${QT_DLL_POSTFIX}.dll DESTINATION bin) + INSTALL(FILES ${QT_DIR}/bin/Qt5Widgets${QT_DLL_POSTFIX}.dll DESTINATION bin) + INSTALL(FILES ${QT_DIR}/bin/Qt5PrintSupport${QT_DLL_POSTFIX}.dll DESTINATION bin) + INSTALL(FILES ${QT_DIR}/plugins/platforms/qwindows${QT_DLL_POSTFIX}.dll DESTINATION bin/platforms) + INSTALL(FILES ${QT_DIR}/plugins/platforms/qminimal${QT_DLL_POSTFIX}.dll DESTINATION bin/platforms) + INSTALL(FILES ${QT_DIR}/plugins/platforms/qoffscreen${QT_DLL_POSTFIX}.dll DESTINATION bin/platforms) -IF( NOT USE_QT4 ) - INSTALL(FILES ${QT_DIR}/bin/Qt5Core${QT_DLL_POSTFIX}.dll DESTINATION bin ) - INSTALL(FILES ${QT_DIR}/bin/Qt5Gui${QT_DLL_POSTFIX}.dll DESTINATION bin ) - INSTALL(FILES ${QT_DIR}/bin/Qt5Widgets${QT_DLL_POSTFIX}.dll DESTINATION bin ) - INSTALL(FILES ${QT_DIR}/bin/Qt5PrintSupport${QT_DLL_POSTFIX}.dll DESTINATION bin ) - INSTALL(FILES ${QT_DIR}/plugins/platforms/qwindows${QT_DLL_POSTFIX}.dll DESTINATION bin/platforms ) - INSTALL(FILES ${QT_DIR}/plugins/platforms/qminimal${QT_DLL_POSTFIX}.dll DESTINATION bin/platforms ) - INSTALL(FILES ${QT_DIR}/plugins/platforms/qoffscreen${QT_DLL_POSTFIX}.dll DESTINATION bin/platforms ) - - IF( USE_FERVOR ) - INSTALL(FILES ${QT_DIR}/bin/Qt5Network${QT_DLL_POSTFIX}.dll DESTINATION bin ) - INSTALL(FILES ${QT_DIR}/bin/Qt5WebKit${QT_DLL_POSTFIX}.dll DESTINATION bin ) - INSTALL(FILES ${QT_DIR}/bin/Qt5WebKitWidgets${QT_DLL_POSTFIX}.dll DESTINATION bin ) - INSTALL(FILES ${QT_DIR}/bin/Qt5Quick${QT_DLL_POSTFIX}.dll DESTINATION bin ) - INSTALL(FILES ${QT_DIR}/bin/Qt5Qml${QT_DLL_POSTFIX}.dll DESTINATION bin ) - INSTALL(FILES ${QT_DIR}/bin/Qt5Multimedia${QT_DLL_POSTFIX}.dll DESTINATION bin ) - INSTALL(FILES ${QT_DIR}/bin/Qt5Sql${QT_DLL_POSTFIX}.dll DESTINATION bin ) - INSTALL(FILES ${QT_DIR}/bin/Qt5Positioning${QT_DLL_POSTFIX}.dll DESTINATION bin ) - INSTALL(FILES ${QT_DIR}/bin/Qt5Sensors${QT_DLL_POSTFIX}.dll DESTINATION bin ) - INSTALL(FILES ${QT_DIR}/bin/Qt5MultimediaWidgets${QT_DLL_POSTFIX}.dll DESTINATION bin ) - INSTALL(FILES ${QT_DIR}/bin/Qt5OpenGL${QT_DLL_POSTFIX}.dll DESTINATION bin ) + IF(USE_FERVOR) + INSTALL(FILES ${QT_DIR}/bin/Qt5Network${QT_DLL_POSTFIX}.dll DESTINATION bin) + INSTALL(FILES ${QT_DIR}/bin/Qt5WebKit${QT_DLL_POSTFIX}.dll DESTINATION bin) + INSTALL(FILES ${QT_DIR}/bin/Qt5WebKitWidgets${QT_DLL_POSTFIX}.dll DESTINATION bin) + INSTALL(FILES ${QT_DIR}/bin/Qt5Quick${QT_DLL_POSTFIX}.dll DESTINATION bin) + INSTALL(FILES ${QT_DIR}/bin/Qt5Qml${QT_DLL_POSTFIX}.dll DESTINATION bin) + INSTALL(FILES ${QT_DIR}/bin/Qt5Multimedia${QT_DLL_POSTFIX}.dll DESTINATION bin) + INSTALL(FILES ${QT_DIR}/bin/Qt5Sql${QT_DLL_POSTFIX}.dll DESTINATION bin) + INSTALL(FILES ${QT_DIR}/bin/Qt5Positioning${QT_DLL_POSTFIX}.dll DESTINATION bin) + INSTALL(FILES ${QT_DIR}/bin/Qt5Sensors${QT_DLL_POSTFIX}.dll DESTINATION bin) + INSTALL(FILES ${QT_DIR}/bin/Qt5MultimediaWidgets${QT_DLL_POSTFIX}.dll DESTINATION bin) + INSTALL(FILES ${QT_DIR}/bin/Qt5OpenGL${QT_DLL_POSTFIX}.dll DESTINATION bin) ENDIF() ENDIF() -IF( USE_OPENCV ) - SET(OpenCV_DLL_DIR "${OpenCV_DIR}/bin" CACHE PATH "Where to find OpenCV dlls") - SET(OpenCV_INSTALL_MODULES ${OPENCV_MODULES} CACHE STRING "List of OpenCV modules") - FOREACH(opencv_module IN LISTS OpenCV_INSTALL_MODULES ) - INSTALL(FILES ${OpenCV_DLL_DIR}/opencv_${opencv_module}${OpenCV_VERSION_MAJOR}${OpenCV_VERSION_MINOR}${OpenCV_VERSION_PATCH}.dll DESTINATION bin ) +IF(USE_OPENCV) + SET(OpenCV_DLL_DIR + "${OpenCV_DIR}/bin" + CACHE PATH "Where to find OpenCV dlls") + SET(OpenCV_INSTALL_MODULES + ${OPENCV_MODULES} + CACHE STRING "List of OpenCV modules") + FOREACH(opencv_module IN LISTS OpenCV_INSTALL_MODULES) + INSTALL(FILES ${OpenCV_DLL_DIR}/opencv_${opencv_module}${OpenCV_VERSION_MAJOR}${OpenCV_VERSION_MINOR}${OpenCV_VERSION_PATCH}.dll DESTINATION bin) ENDFOREACH() ENDIF() -IF( USE_FFMPEG ) - SET(FFMPEG_DIR "FFmpeg-Dir" CACHE PATH "Where to find FFmpeg Lib on Windows") - INSTALL(FILES ${FFMPEG_DIR}/bin/avcodec-${AVCODEC_VERSION}.dll DESTINATION bin ) - INSTALL(FILES ${FFMPEG_DIR}/bin/avformat-${AVFORMAT_VERSION}.dll DESTINATION bin ) - INSTALL(FILES ${FFMPEG_DIR}/bin/avutil-${AVUTIL_VERSION}.dll DESTINATION bin ) - INSTALL(FILES ${FFMPEG_DIR}/bin/swscale-${SWSCALE_VERSION}.dll DESTINATION bin ) - INSTALL(FILES ${FFMPEG_DIR}/bin/swresample-${SWRESAMPLE_VERSION}.dll DESTINATION bin ) +IF(USE_FFMPEG) + SET(FFMPEG_DIR + "FFmpeg-Dir" + CACHE PATH "Where to find FFmpeg Lib on Windows") + INSTALL(FILES ${FFMPEG_DIR}/bin/avcodec-${AVCODEC_VERSION}.dll DESTINATION bin) + INSTALL(FILES ${FFMPEG_DIR}/bin/avformat-${AVFORMAT_VERSION}.dll DESTINATION bin) + INSTALL(FILES ${FFMPEG_DIR}/bin/avutil-${AVUTIL_VERSION}.dll DESTINATION bin) + INSTALL(FILES ${FFMPEG_DIR}/bin/swscale-${SWSCALE_VERSION}.dll DESTINATION bin) + INSTALL(FILES ${FFMPEG_DIR}/bin/swresample-${SWRESAMPLE_VERSION}.dll DESTINATION bin) ENDIF()