diff --git a/CMake/Definitions.cmake b/CMake/Definitions.cmake new file mode 100644 index 0000000000000000000000000000000000000000..0ccc28c8bd38ac6c8e4f49695f6e1cbc2a9f4c98 --- /dev/null +++ b/CMake/Definitions.cmake @@ -0,0 +1,33 @@ + +# ensure WIN32 definition +IF(WIN32) + ADD_DEFINITIONS(-DWIN32) +ENDIF(WIN32) + + +# On Visual Studio 8 MS deprecated C. This removes all 1.276E1265 security +# warnings +IF(WIN32) + IF(NOT CYGWIN) + IF(NOT MINGW) + ADD_DEFINITIONS( + -D_CRT_FAR_MAPPINGS_NO_DEPRECATE + -D_CRT_IS_WCTYPE_NO_DEPRECATE + -D_CRT_MANAGED_FP_NO_DEPRECATE + -D_CRT_NONSTDC_NO_DEPRECATE + -D_CRT_SECURE_NO_DEPRECATE + -D_CRT_SECURE_NO_DEPRECATE_GLOBALS + -D_CRT_SETERRORMODE_BEEP_SLEEP_NO_DEPRECATE + -D_CRT_TIME_FUNCTIONS_NO_DEPRECATE + -D_CRT_VCCLRIT_NO_DEPRECATE + -D_SCL_SECURE_NO_DEPRECATE + ) + + IF (MSVC) + ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS) + ADD_DEFINITIONS(-D_CRT_NONSTDC_NO_WARNING) + ENDIF(MSVC) + + ENDIF(NOT MINGW) + ENDIF(NOT CYGWIN) +ENDIF(WIN32) \ No newline at end of file diff --git a/CMake/ParseArguments.cmake b/CMake/ParseArguments.cmake new file mode 100644 index 0000000000000000000000000000000000000000..da5000e58e2294c1dff5660ef348a839b0a93906 --- /dev/null +++ b/CMake/ParseArguments.cmake @@ -0,0 +1,32 @@ +# Source : http://www.itk.org/Wiki/CMakeMacroParseArguments + +MACRO(PARSE_ARGUMENTS prefix arg_names option_names) + SET(DEFAULT_ARGS) + FOREACH(arg_name ${arg_names}) + SET(${prefix}_${arg_name}) + ENDFOREACH(arg_name) + FOREACH(option ${option_names}) + SET(${prefix}_${option} FALSE) + ENDFOREACH(option) + + SET(current_arg_name DEFAULT_ARGS) + SET(current_arg_list) + FOREACH(arg ${ARGN}) + SET(larg_names ${arg_names}) + LIST(FIND larg_names "${arg}" is_arg_name) + IF (is_arg_name GREATER -1) + SET(${prefix}_${current_arg_name} ${current_arg_list}) + SET(current_arg_name ${arg}) + SET(current_arg_list) + ELSE (is_arg_name GREATER -1) + SET(loption_names ${option_names}) + LIST(FIND loption_names "${arg}" is_option) + IF (is_option GREATER -1) + SET(${prefix}_${arg} TRUE) + ELSE (is_option GREATER -1) + SET(current_arg_list ${current_arg_list} ${arg}) + ENDIF (is_option GREATER -1) + ENDIF (is_arg_name GREATER -1) + ENDFOREACH(arg) + SET(${prefix}_${current_arg_name} ${current_arg_list}) +ENDMACRO(PARSE_ARGUMENTS) \ No newline at end of file diff --git a/CMake/WrapperMacros.cmake b/CMake/WrapperMacros.cmake new file mode 100644 index 0000000000000000000000000000000000000000..4ea434d38c4af015594775fffddd8e262416b5f9 --- /dev/null +++ b/CMake/WrapperMacros.cmake @@ -0,0 +1,17 @@ +include(ParseArguments) + +macro(OTB_CREATE_APPLICATION) + PARSE_ARGUMENTS( + APPLICATION + "NAME;SOURCES;INCLUDE_DIRS;LINK_LIBRARIES" + "" + ${ARGN}) + + set( APPLICATION_TARGET_NAME otbapp_${APPLICATION_NAME} ) + + include_directories(${CMAKE_SOURCE_DIR}/Code/Core) + include_directories(${APPLICATION_INCLUDE_DIRS}) + add_library(${APPLICATION_TARGET_NAME} MODULE ${APPLICATION_SOURCES}) + target_link_libraries(${APPLICATION_TARGET_NAME} OTBWrapperCore ${APPLICATION_LINK_LIBRARIES}) + set_target_properties(${APPLICATION_TARGET_NAME} PROPERTIES PREFIX "") +endmacro(OTB_CREATE_APPLICATION) \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 306b78796d4bce1db70eed50e55f42329081f256..43286e412c22e54f424af5ac7c575aa333ee8836 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,42 +6,12 @@ IF(COMMAND CMAKE_POLICY) CMAKE_POLICY(SET CMP0003 NEW) ENDIF(COMMAND CMAKE_POLICY) -# ensure WIN32 definition -IF(WIN32) - ADD_DEFINITIONS(-DWIN32) -ENDIF(WIN32) - # Path to additional CMake modules SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake ${CMAKE_MODULE_PATH}) -# On Visual Studio 8 MS deprecated C. This removes all 1.276E1265 security -# warnings -IF(WIN32) - IF(NOT CYGWIN) - IF(NOT MINGW) - ADD_DEFINITIONS( - -D_CRT_FAR_MAPPINGS_NO_DEPRECATE - -D_CRT_IS_WCTYPE_NO_DEPRECATE - -D_CRT_MANAGED_FP_NO_DEPRECATE - -D_CRT_NONSTDC_NO_DEPRECATE - -D_CRT_SECURE_NO_DEPRECATE - -D_CRT_SECURE_NO_DEPRECATE_GLOBALS - -D_CRT_SETERRORMODE_BEEP_SLEEP_NO_DEPRECATE - -D_CRT_TIME_FUNCTIONS_NO_DEPRECATE - -D_CRT_VCCLRIT_NO_DEPRECATE - -D_SCL_SECURE_NO_DEPRECATE - ) - - IF (MSVC) - ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS) - ADD_DEFINITIONS(-D_CRT_NONSTDC_NO_WARNING) - ENDIF(MSVC) - - ENDIF(NOT MINGW) - ENDIF(NOT CYGWIN) -ENDIF(WIN32) +include(Definitions) # Link to the Orfeo ToolBox FIND_PACKAGE(OTB REQUIRED PATHS /usr/lib/otb ) @@ -53,7 +23,6 @@ IF(OTB_USE_QT) FIND_PACKAGE(Qt4 REQUIRED) SET(QT_USE_QTXML 1) INCLUDE(${QT_USE_FILE}) - INCLUDE_DIRECTORIES(${QT_INCLUDE_DIRS}) ENDIF(OTB_USE_QT) OPTION(OTB_USE_SWIG "Generate Qt wrappers for Applications" ON) @@ -63,22 +32,8 @@ INCLUDE(${SWIG_USE_FILE}) FIND_PACKAGE(PythonLibs REQUIRED) FIND_PACKAGE(PythonInterp REQUIRED) -#----------------------------------------------------------------------------- -#Build shared libraries for monteverdi -#By default, import the option from the OTB configuration SET(BUILD_SHARED_LIBS ${OTB_BUILD_SHARED_LIBS}) -INCLUDE_DIRECTORIES( - ${CMAKE_CURRENT_SOURCE_DIR}/Code - ${CMAKE_CURRENT_SOURCE_DIR}/Code/Core - ${CMAKE_CURRENT_SOURCE_DIR}/Code/Wrappers - ${CMAKE_CURRENT_SOURCE_DIR}/Code/Wrappers/QtWidget - ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_CURRENT_BINARY_DIR}/Code - ${CMAKE_CURRENT_BINARY_DIR}/Code/Wrappers - ${CMAKE_CURRENT_BINARY_DIR}/Code/Wrappers/QtWidget -) - ADD_SUBDIRECTORY(Code) ADD_SUBDIRECTORY(Example) diff --git a/Code/Wrappers/ApplicationLauncherQt/CMakeLists.txt b/Code/Wrappers/ApplicationLauncherQt/CMakeLists.txt index 8943b137bbb6cf8666452a9c039e258c20900d1b..ba822eeaa3c470c8c641b540816b17b26ad19b93 100644 --- a/Code/Wrappers/ApplicationLauncherQt/CMakeLists.txt +++ b/Code/Wrappers/ApplicationLauncherQt/CMakeLists.txt @@ -1,3 +1,5 @@ +INCLUDE_DIRECTORIES(${QT_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES(../QtWidget) SET( SRCS otbApplicationLauncherQt.cxx ) diff --git a/Code/Wrappers/CMakeLists.txt b/Code/Wrappers/CMakeLists.txt index f247fc17355c8611cb6e309c9a0a05a95f6af255..f3b5897812cf18d9929a9ff1767cda6cd791b734 100644 --- a/Code/Wrappers/CMakeLists.txt +++ b/Code/Wrappers/CMakeLists.txt @@ -1,3 +1,5 @@ +INCLUDE_DIRECTORIES(../Core) + ADD_SUBDIRECTORY(ApplicationLauncherQt) ADD_SUBDIRECTORY(QtWidget) ADD_SUBDIRECTORY(SWIG) diff --git a/Code/Wrappers/QtWidget/CMakeLists.txt b/Code/Wrappers/QtWidget/CMakeLists.txt index 11ff545652f8ae684ca6334e150fc74e0beea9ae..f7ebaddfb3fb17c13c74f29abeaea8ec401a9eee 100644 --- a/Code/Wrappers/QtWidget/CMakeLists.txt +++ b/Code/Wrappers/QtWidget/CMakeLists.txt @@ -1,4 +1,4 @@ - +INCLUDE_DIRECTORIES(${QT_INCLUDE_DIRS}) FILE(GLOB srcs "*.cxx") SET( WrappersQtWidget_MOC_HDR diff --git a/Example/Addition/CMakeLists.txt b/Example/Addition/CMakeLists.txt deleted file mode 100644 index 947c7083fefa7893cf7cdcba314ed3ab1e9d3f99..0000000000000000000000000000000000000000 --- a/Example/Addition/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ - -SET( SRCS - otbAddition.cxx ) - -ADD_LIBRARY(OTBWrapperAddition otbAddition.cxx) -TARGET_LINK_LIBRARIES(OTBWrapperAddition OTBWrapperCore) diff --git a/Example/CMakeLists.txt b/Example/CMakeLists.txt index ec66495bcfd2a7c171da19007679ce40e95423ac..04e9d75bd3adeff1b372e410a14b0c646db67f5f 100644 --- a/Example/CMakeLists.txt +++ b/Example/CMakeLists.txt @@ -1,2 +1,4 @@ -add_subdirectory(Addition) -add_subdirectory(Smoothing) \ No newline at end of file +include(WrapperMacros) + +OTB_CREATE_APPLICATION(NAME Addition SOURCES otbAddition.cxx) +OTB_CREATE_APPLICATION(NAME Smoothing SOURCES otbSmoothing.cxx) \ No newline at end of file diff --git a/Example/Smoothing/CMakeLists.txt b/Example/Smoothing/CMakeLists.txt deleted file mode 100644 index adc89f52a75de947ed72a2f2079acce074ce0d33..0000000000000000000000000000000000000000 --- a/Example/Smoothing/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ - -SET( SRCS - otbSmoothing.cxx ) - -ADD_LIBRARY(OTBWrapperSmoothing otbSmoothing.cxx) -TARGET_LINK_LIBRARIES(OTBWrapperSmoothing OTBWrapperCore) diff --git a/Example/Addition/otbAddition.cxx b/Example/otbAddition.cxx similarity index 100% rename from Example/Addition/otbAddition.cxx rename to Example/otbAddition.cxx diff --git a/Example/Smoothing/otbSmoothing.cxx b/Example/otbSmoothing.cxx similarity index 100% rename from Example/Smoothing/otbSmoothing.cxx rename to Example/otbSmoothing.cxx diff --git a/Testing/Core/CMakeLists.txt b/Testing/Core/CMakeLists.txt index 5ad0ed919163b6505c556da50117ff464106d813..323639eab89508e5afaa9ac510ccf512bb80b008 100644 --- a/Testing/Core/CMakeLists.txt +++ b/Testing/Core/CMakeLists.txt @@ -76,5 +76,6 @@ otbWrapperParameterTest.cxx otbWrapperApplicationRegistryTest.cxx ) +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/Code/Core) ADD_EXECUTABLE(otbWrapperTests ${Wrapper_SRCS}) TARGET_LINK_LIBRARIES(otbWrapperTests OTBIO OTBCommon ITKIO ITKCommon OTBTesting OTBWrapperCore) diff --git a/Testing/QtWidget/CMakeLists.txt b/Testing/QtWidget/CMakeLists.txt index 5cb6767c3d62042cb4d6c1c8b4b921753fc621a4..526b98e4095f00b0bcabb9ce5599d5109b8971ab 100644 --- a/Testing/QtWidget/CMakeLists.txt +++ b/Testing/QtWidget/CMakeLists.txt @@ -8,6 +8,10 @@ SET(WrapperQtWidget_SRCS otbWrapperQtWidgetTests.cxx otbWrapperQtWidgetParameterFactory.cxx) +INCLUDE_DIRECTORIES(${QT_INCLUDE_DIRS}) +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/Code/Core) +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/Code/Wrappers/QtWidget) + ADD_EXECUTABLE(otbWrapperQtWidgetTests ${WrapperQtWidget_SRCS}) TARGET_LINK_LIBRARIES(otbWrapperQtWidgetTests OTBIO