]> Creatis software - bbtk.git/blobdiff - packages/itk/CMakeLists.txt
Feature #1774
[bbtk.git] / packages / itk / CMakeLists.txt
index 33103f88838e2b44f2ef3c390d5ea3f6b8dab3a4..c1821170b0b43056d61f5ae479b8d860f0006365 100644 (file)
@@ -1,10 +1,34 @@
-#===========================================================================
-# SETTINGS FOR A BBTK PACKAGE
-#===========================================================================
-
-#===========================================================================
-# THE NAME OF THE BBTK PACKAGE = NAME OF THE CURRENT DIRECTORY
-# GET_FILENAME_COMPONENT(BBTK_PACKAGE_NAME ${CMAKE_CURRENT_SOURCE_DIR} NAME)
+ # ---------------------------------------------------------------------
+ #
+ # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+ #                        pour la SantÈ)
+ # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+ # Previous Authors : Laurent Guigues, Jean-Pierre Roux
+ # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+ #
+ #  This software is governed by the CeCILL-B license under French law and
+ #  abiding by the rules of distribution of free software. You can  use,
+ #  modify and/ or redistribute the software under the terms of the CeCILL-B
+ #  license as circulated by CEA, CNRS and INRIA at the following URL
+ #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+ #  or in the file LICENSE.txt.
+ #
+ #  As a counterpart to the access to the source code and  rights to copy,
+ #  modify and redistribute granted by the license, users are provided only
+ #  with a limited warranty  and the software's author,  the holder of the
+ #  economic rights,  and the successive licensors  have only  limited
+ #  liability.
+ #
+ #  The fact that you are presently reading this means that you have had
+ #  knowledge of the CeCILL-B license and that you accept its terms.
+ # ------------------------------------------------------------------------ */
+#===========================================================================
+# CMAKE SETTINGS FOR BUILDING A BBTK PACKAGE
+#===========================================================================
+
+#===========================================================================
+# THE NAME OF THE BBTK PACKAGE
 SET(BBTK_PACKAGE_NAME itk)
 #===========================================================================
 
@@ -13,40 +37,51 @@ SET(BBTK_PACKAGE_NAME itk)
 # PROJECT(bb${BBTK_PACKAGE_NAME})
 #===========================================================================
 
-
 #===========================================================================
 # UNCOMMENT EACH LIBRARY NEEDED
-# SET(BBTK_PACKAGE_USE_VTK  ON)
-# SET(BBTK_PACKAGE_USE_ITK  ON)
-# SET(BBTK_PACKAGE_USE_GDCM ON)
-# SET(BBTK_PACKAGE_USE_GSMIS ON)
+# SET(${BBTK_PACKAGE_NAME}_USE_VTK   ON)
+SET(${BBTK_PACKAGE_NAME}_USE_ITK  ON)
+# SET(${BBTK_PACKAGE_NAME}_USE_GDCM  ON)
+# SET(${BBTK_PACKAGE_NAME}_USE_GDCM2 ON)
+# SET(${BBTK_PACKAGE_NAME}_USE_GSMIS ON)
 # SET(${BBTK_PACKAGE_NAME}_USE_WXWIDGETS ON)
 #===========================================================================
 
+#===========================================================================
+# LIST HERE THE OTHER bbtk PACKAGES NEEDED
+SET(${BBTK_PACKAGE_NAME}_USE_PACKAGES 
+  # std
+  # wx
+  # itk
+  # vtk
+  # ...
+  )
+#===========================================================================
+
 #===========================================================================
 # PACKAGE AUTHOR
 # !!! NO COMMA ALLOWED !!!
-SET(BBTK_PACKAGE_AUTHOR "laurent.guigues at creatis.insa-lyon.fr")
+SET(${BBTK_PACKAGE_NAME}_AUTHOR "laurent.guigues at creatis.insa-lyon.fr")
 #===========================================================================
 
 #===========================================================================
 # PACKAGE DESCRIPTION
-SET(BBTK_PACKAGE_DESCRIPTION "Basic itk-based boxes")
+SET(${BBTK_PACKAGE_NAME}_DESCRIPTION "Basic itk-based boxes")
 #===========================================================================
 
 #===========================================================================
 # PACKAGE VERSION NUMBER 
-SET(BBTK_PACKAGE_MAJOR_VERSION 1)
-SET(BBTK_PACKAGE_MINOR_VERSION 0)
-SET(BBTK_PACKAGE_BUILD_VERSION 0)
+SET(${BBTK_PACKAGE_NAME}_MAJOR_VERSION 1)
+SET(${BBTK_PACKAGE_NAME}_MINOR_VERSION 0)
+SET(${BBTK_PACKAGE_NAME}_BUILD_VERSION 0)
 #===========================================================================
 
 #===========================================================================
 # THE SOURCES OF THE PACKAGE
 # EITHER UNCOMMENT NEXT LINE TO COMPILE ALL .cxx OF THE src DIRECTORY :
-SET(BBTK_PACKAGE_COMPILE_ALL_CXX ON)
+SET(${BBTK_PACKAGE_NAME}_COMPILE_ALL_CXX ON)
 # ... OR LIST THE FILES TO COMPILE MANUALLY :
-#SET(BBTK_PACKAGE_SOURCES
+#SET(${BBTK_PACKAGE_NAME}_SOURCES
 # LIST HERE THE FILES TO COMPILE TO BUILD THE LIB
 # E.G. TO COMPILE "toto.cxx" ADD "toto" (NO EXTENSION)
 # THE PATH MUST BE RELATIVE TO THE src FOLDER
@@ -56,9 +91,9 @@ SET(BBTK_PACKAGE_COMPILE_ALL_CXX ON)
 #===========================================================================
 # THE xml SOURCES OF THE PACKAGE
 # EITHER UNCOMMENT NEXT LINE TO bbfy ALL .xml OF THE src DIRECTORY :
-SET(BBTK_PACKAGE_COMPILE_ALL_XML ON)
+SET(${BBTK_PACKAGE_NAME}_COMPILE_ALL_XML ON)
 # ... OR LIST THE FILES TO COMPILE MANUALLY :
-#SET(BBTK_PACKAGE_XML_SOURCES
+#SET(${BBTK_PACKAGE_NAME}_XML_SOURCES
 # LIST HERE THE FILES TO bbfy TO BUILD THE LIB
 # E.G. TO bbfy "toto.xml" ADD "toto" (NO EXTENSION)
 # THE PATH MUST BE RELATIVE TO THE src FOLDER
@@ -68,9 +103,9 @@ SET(BBTK_PACKAGE_COMPILE_ALL_XML ON)
 #===========================================================================
 # THE SCRIPT-DEFINED BOXES OF THE PACKAGE (bbs)
 # EITHER UNCOMMENT NEXT LINE TO INCLUDE ALL .bbs OF THE bbs/boxes DIRECTORY :
-SET(BBTK_PACKAGE_INCLUDE_ALL_BBS_BOXES ON)
+SET(${BBTK_PACKAGE_NAME}_INCLUDE_ALL_BBS_BOXES ON)
 # ... OR LIST THE FILES TO INCLUDE MANUALLY :
-# SET(BBTK_PACKAGE_BBS_BOXES
+# SET(${BBTK_PACKAGE_NAME}_BBS_BOXES
 # LIST HERE THE bbs FILES TO INCLUDE 
 # E.G. TO INCLUDE "boxes/bbtoto.bbs" ADD "boxes/bbtoto" (NO EXTENSION)
 # !! THE PATH MUST BE RELATIVE TO THE bbs FOLDER !!
@@ -80,9 +115,9 @@ SET(BBTK_PACKAGE_INCLUDE_ALL_BBS_BOXES ON)
 #===========================================================================
 # THE SCRIPT-DEFINED APPLICATIONS OF THE PACKAGE (bbs)
 # EITHER UNCOMMENT NEXT LINE TO INCLUDE ALL .bbs OF THE bbs/appli DIRECTORY :
-SET(BBTK_PACKAGE_INCLUDE_ALL_BBS_APPLI ON)
+SET(${BBTK_PACKAGE_NAME}_INCLUDE_ALL_BBS_APPLI ON)
 # ... OR LIST THE FILES TO INCLUDE MANUALLY :
-# SET(BBTK_PACKAGE_BBS_APPLI
+# SET(${BBTK_PACKAGE_NAME}_BBS_APPLI
 # LIST HERE THE bbs FILES TO INCLUDE 
 # E.G. TO INCLUDE "appli/testToto.bbs" ADD "appli/testToto" (NO EXTENSION)
 # !! THE PATH MUST BE RELATIVE TO THE bbs FOLDER !!
@@ -90,21 +125,34 @@ SET(BBTK_PACKAGE_INCLUDE_ALL_BBS_APPLI ON)
 #===========================================================================
 
 #===========================================================================
-INCLUDE_DIRECTORIES(
-  # LIST HERE YOUR INCLUDE DIRECTORIES 
-  # EXCEPT BBTK'S AND THE INCLUDE DIRS THAT WERE SET 
-  # BY INCLUDING A LIBRARY USE FILE
+SET(${BBTK_PACKAGE_NAME}_INCLUDE_DIRS
+  # LIST HERE YOUR ADDITIONAL INCLUDE DIRECTORIES 
+  # EXCEPT :
+  #  - src
+  #  - bbtk dirs
+  #  - automatically handled libraries or packages : wx, vtk... (see above)
+  #  - the dirs automatically set by other libraries found by FIND_PACKAGE
+  #
+  # HERE WE USE THE std PACKAGE DIRECTLY BECAUSE WE ARE IN THE BBTK BUILD
+  # TREE ITSELF AND WE CANNOT FIND std WITH THE STANDARD MECHANISM 
+  # HOWEVER A USER SHOULD USE std BY LISTING IT IN THE VARIABLE 
+  # ${BBTK_PACKAGE_NAME}_USE_PACKAGES (see above)
+  ../std/src
+  # The path to the build tree folder is needed to find bbstd_EXPORT.h
+  ${PROJECT_BINARY_DIR}/packages/std/src
   )
 #===========================================================================
 
 
 #===========================================================================
-SET(BBTK_PACKAGE_LIBS 
+SET(${BBTK_PACKAGE_NAME}_LIBS 
   # LIST HERE THE LIBS TO LINK AGAINST (EXCEPT BBTK)
   )
 #===========================================================================
-
-
+# To compile with VS under x64, /bigobj flag is needed
+IF(MSVC AND CMAKE_SIZEOF_VOID_P MATCHES 8)
+       set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /bigobj")
+ENDIF()
 
 #===========================================================================
 # END OF USER SECTION