Skip to content
Snippets Groups Projects
Commit 1d2b2852 authored by Julien Malik's avatar Julien Malik
Browse files

ENH: improve build system

parent 09c9138c
No related branches found
No related tags found
No related merge requests found
# 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
# 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
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
......@@ -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)
......
INCLUDE_DIRECTORIES(${QT_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(../QtWidget)
SET( SRCS
otbApplicationLauncherQt.cxx )
......
INCLUDE_DIRECTORIES(../Core)
ADD_SUBDIRECTORY(ApplicationLauncherQt)
ADD_SUBDIRECTORY(QtWidget)
ADD_SUBDIRECTORY(SWIG)
INCLUDE_DIRECTORIES(${QT_INCLUDE_DIRS})
FILE(GLOB srcs "*.cxx")
SET( WrappersQtWidget_MOC_HDR
......
SET( SRCS
otbAddition.cxx )
ADD_LIBRARY(OTBWrapperAddition otbAddition.cxx)
TARGET_LINK_LIBRARIES(OTBWrapperAddition OTBWrapperCore)
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
SET( SRCS
otbSmoothing.cxx )
ADD_LIBRARY(OTBWrapperSmoothing otbSmoothing.cxx)
TARGET_LINK_LIBRARIES(OTBWrapperSmoothing OTBWrapperCore)
File moved
File moved
......@@ -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)
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment