]> Creatis software - creaImageIO.git/blobdiff - CMakeLists.txt
Avoid boost 1.46 troubles
[creaImageIO.git] / CMakeLists.txt
index def1eead344fe975ff1803c0363a96478c94675e..f0b2131264eb6a9dc2d72281d7a545e5ee6c04dd 100644 (file)
@@ -1,23 +1,78 @@
-PROJECT(creaImageIO)
+#
+# Test CMake version
+CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
+
+#MARK_AS_ADVANCED( FORCE CMAKE_BACKWARDS_COMPATIBILITY )
+# for CMake 2.6 corrected behaviour (see "cmake --help-policy CMP0003")
+IF(COMMAND cmake_policy AND ${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} GREATER 4)
+  CMAKE_POLICY(SET CMP0003 NEW)
+  CMAKE_POLICY(SET CMP0005 NEW)
+  CMAKE_POLICY(SET CMP0011 NEW)
+ENDIF(COMMAND cmake_policy AND ${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} GREATER 4)
 
-SET(PROJECT_MAJOR_VERSION 1)
-SET(PROJECT_MINOR_VERSION 0)
-SET(PROJECT_BUILD_VERSION 0)
+###################################
+PROJECT(creaImageIO)
+###################################
 
+#==================================
+# The project version
+SET(PROJECT_MAJOR_VERSION 0)
+SET(PROJECT_MINOR_VERSION 2)
+SET(PROJECT_BUILD_VERSION 5)
 SET(CREA_VERBOSE_CMAKE TRUE)
 
+#==================================
+# Find crea (mandatory, to use macros)
 FIND_PACKAGE(crea REQUIRED)
 IF (crea_FOUND)
   INCLUDE(${crea_USE_FILE})
 ENDIF(crea_FOUND)
+#==================================
+
+#==================================
+# Do not allow to build inside the source tree
+CREA_PREVENT_IN_SOURCE_BUILD()
+#==================================
+
+message("link directory ${GDCM_INCLUDE_DIR} ?!? ")
+
+# For boost 1.46 troubles...  // JPR.
+add_definitions(-DBOOST_FILESYSTEM_VERSION=2)
 
-SET(USE_GDCM ON)
 SET(USE_GDCM_VTK ON)
-SET(USE_WXWIDGETS ON)
+
 SET(USE_VTK ON)
 SET(USE_ITK OFF)
 SET(USE_BOOST ON)
+OPTION(USE_WXWIDGETS "Use WxWidgets GUI" ON)
+OPTION(USE_QT4 "USE QT4GUI"       OFF)
+OPTION(USE_XERCES "USE Xerces if you want to use an beta version of outputModel" OFF)
+OPTION(USE_INSTALL_APP "install only useful applications" ON)
+
+IF(USE_QT4)
+       IF(USE_WXWIDGETS)
+                MESSAGE(ERROR "CANNOT USE QT WXWIDGETS IN SAME TIME")
+       ENDIF(USE_WXWIDGETS)
+ENDIF(USE_QT4)
+                
+IF(QT4_FOUND)
+ IF (WIN32)
+ MESSAGE("So ... ${QT_DIR}")
+               INCLUDE_DIRECTORIES(${QT_DIR}/../include)               
+               LINK_DIRECTORIES(${QT_DIR}/../lib)
+ ENDIF(WIN32)
+ENDIF(QT4_FOUND)
+#
+# ----------------- manual setting GDCM/GDCM2 JPR
+#               
+OPTION(USE_GDCM "Use gdcm 1.3" ON)
+OPTION(USE_GDCM2 "Use gdcm 2.0.14 at least" OFF)
 
+ MESSAGE(STATUS "GDCM LIB ....= ${GDCM_LIBRARIES}")
+IF(USE_GDCM2)
+       OPTION(USE_GDCM_ANOM "use gdcm2 anonymizer tool" OFF)
+       #TO DO TEST IF GDCM_USE_SYSTEM_OPENSSL is valid
+ENDIF(USE_GDCM2)
 CREA_FIND_AND_USE_LIBRARIES()
 
 SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
@@ -28,18 +83,57 @@ MARK_AS_ADVANCED(
   LIBRARY_OUTPUT_PATH
   )
 
-# Includes 
-INCLUDE_DIRECTORIES(
-#  ${PROJECT_BINARY_DIR}
-  ${PROJECT_SOURCE_DIR}/src
-  )
-
 IF(WIN32)
-INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/win32)
-LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/win32)
+       IF(MSVC AND CMAKE_SIZEOF_VOID_P MATCHES 4)
+               INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/win32)
+               LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/win32)
+       endif()
+       IF(MSVC AND CMAKE_SIZEOF_VOID_P MATCHES 8)
+               INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/win64)
+               LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/win64)
+       endif()
 ENDIF(WIN32)
 
-SUBDIRS(src)
-SUBDIRS(appli)
-#SUBDIRS(bbtk)
+SET(LIBNAME creaImageIO)
+       INCLUDE_DIRECTORIES(
+    ${PROJECT_BINARY_DIR}
+    ${PROJECT_SOURCE_DIR}/src
+    )
+ADD_SUBDIRECTORY(src)
+
+
+OPTION(BUILD_CREA_BRUKER "Build creaIRM with creaBruker?" ON)
+
+IF (BUILD_CREA_BRUKER)
+       FIND_PACKAGE(creaBruker REQUIRED)
+       IF (creaBruker_FOUND)
+               INCLUDE(${creaBruker_USE_FILE})
+               CREA_DEFINE(BUILD_BRUKER)
+       ENDIF(creaBruker_FOUND)
+ENDIF (BUILD_CREA_BRUKER)
+
+
+# To Use PACS connection library
+OPTION(BUILD_CREA_PACS "Build creaImageIO with PACS connection library ?" OFF)
+IF (BUILD_CREA_PACS)
+       CREA_DEFINE(BUILD_PACS)
+ENDIF(BUILD_CREA_PACS)
+
+#==================================
+# Subdirs
+
+ADD_SUBDIRECTORY(appli)
+ADD_SUBDIRECTORY(bbtk)
+ADD_SUBDIRECTORY(tests)
+
+IF(MSVC AND CMAKE_SIZEOF_VOID_P MATCHES 4)
+       ADD_SUBDIRECTORY(win32)
+endif()
+IF(MSVC AND CMAKE_SIZEOF_VOID_P MATCHES 8)
+       ADD_SUBDIRECTORY(win64)
+endif()
+
+ADD_SUBDIRECTORY(install)
+#==================================
 
+ENABLE_TESTING()