]> Creatis software - bbtk.git/blobdiff - packages/std/CMakeLists.txt
#3157 BBTK Feature New - NormalInvertCropBox Active
[bbtk.git] / packages / std / CMakeLists.txt
index 51e7e45d6a389301bee7a55438752a2a7c972c68..0f0abdf5e2ad98dda48a53f53f06f07857169b6a 100644 (file)
@@ -1,10 +1,35 @@
-#===========================================================================
-# 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 std)
 #===========================================================================
 
@@ -13,40 +38,51 @@ SET(BBTK_PACKAGE_NAME std)
 # 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 useful boxes")
+SET(${BBTK_PACKAGE_NAME}_DESCRIPTION "Basic useful 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 +92,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 +104,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 +116,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,20 +126,27 @@ 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
   )
 #===========================================================================
 
-
 #===========================================================================
-SET(BBTK_PACKAGE_LIBS 
-  # LIST HERE THE LIBS TO LINK AGAINST (EXCEPT BBTK)
+SET(${BBTK_PACKAGE_NAME}_LIBS 
+  # LIST HERE THE ADDITIONAL LIBS TO LINK AGAINST
+  # EXCEPT : the same libs than for INCLUDE_DIRS 
   )
 #===========================================================================
-
+#===========================================================================
+# 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()
 
 
 #===========================================================================