]> Creatis software - bbtk.git/blobdiff - kernel/src/CMakeLists.txt
2498 BBTK FeatureNewNormal wt-version kernel
[bbtk.git] / kernel / src / CMakeLists.txt
index 6182ac14277859b51f61f5a71ad8f7f747f5c8b1..44e3b2c8e411f44021be62f35f67272b1014c838 100644 (file)
@@ -1,3 +1,29 @@
+ # ---------------------------------------------------------------------
+ #
+ # 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.
+ # ------------------------------------------------------------------------ */
+
+
 #-----------------------------------------------------------------------------
 # BUILDS AND INSTALLS THE LIBRARY BBTK
 #-----------------------------------------------------------------------------
@@ -7,6 +33,10 @@
 # Tests 
 #-----------------------------------------------------------------------------
 
+MESSAGE(STATUS "")
+MESSAGE(STATUS "=======================================")
+MESSAGE(STATUS "CONFIGURING bbtk LIBRARY")
+
 
 #-----------------------------------------------------------------------------
 # Test if compiler defines the pseudo-macro __FUNCTION__
@@ -70,41 +100,8 @@ CHECK_INCLUDE_FILE("sys/timeb.h"    CMAKE_HAVE_SYS_TIMEB_H)
 
   
 
-#-----------------------------------------------------------------------------
-# bbtk library dependencies
 #-----------------------------------------------------------------------------
 
-#-----------------------------------------------------------------------------
-# WXWIDGETS
-OPTION(BBTK_USE_WXWIDGETS "Build bbtk library and applications in graphical mode using the wxWidgets library" OFF)
-
-IF(BBTK_USE_WXWIDGETS)
-  SET(USE_WXWIDGETS ON CACHE BOOL "Use WxWidgets" FORCE)
-
-#  INCLUDE(cmake/FIND_AND_USE_WXWIDGETS.cmake)
-#  FIND_AND_USE_WXWIDGETS()
-#  ADD_DEF( _USE_WXWIDGETS_ )
-  SET(BBTK_LINK_LIBRARIES
-    ${BBTK_LINK_LIBRARIES}
-    ${BBTK_WXWIDGETS_LIBRARIES} 
-    )
-ENDIF(BBTK_USE_WXWIDGETS)
-#-----------------------------------------------------------------------------
-
-#-----------------------------------------------------------------------------
-# On unix systems, need to link against dl for dynamic librairies open/close
-IF(UNIX)
-  SET(BBTK_LINK_LIBRARIES
-    ${BBTK_LINK_LIBRARIES}
-    dl) 
-ENDIF(UNIX)
-#-----------------------------------------------------------------------------
-
-#-----------------------------------------------------------------------------
-# EO bbtk library dependencies
-#-----------------------------------------------------------------------------
-
-
 
 
 
@@ -144,21 +141,68 @@ ENDIF(NOT BBTK_INSTALL_NO_DEVELOPMENT)
 
 
 
-
 #-----------------------------------------------------------------------------
 # bbtk library creation
 #-----------------------------------------------------------------------------
+# Symbols must be exported (Windows)
+CREA_DEFINE(BBTK_EXPORT_SYMBOLS)
 
+#ADD_DEFINITIONS(-DCHECKBOXVIEW=1)
 #-----------------------------------------------------------------------------
 # Sources files 
-FILE(GLOB SOURCES "." "*.cxx" "*.cpp")
-FILE(GLOB SOURCES_H "." "*.h" )
+FILE(GLOB SOURCES "." "*.cxx" "*.cpp") 
+# "ThirdParty/wx/treemultictrl/*.cpp")
+FILE(GLOB SOURCES_H "." "*.h" "*.txx" )
+
+#-----------------------------------------------------------------------------
+IF(BBTK_USE_KWWIDGETS)
+  IF(KWWidgets_FOUND)
+    include("${KWWidgets_CMAKE_DIR}/KWWidgetsWrappingMacros.cmake")
+    kwwidgets_wrap_tcl(bbtk LIB_TCL_SRCS "vtkKWBlackBoxDialog.cxx" "")
+    SET(SOURCES ${SOURCES} ${LIB_TCL_SRCS})
+  ENDIF(KWWidgets_FOUND)
+ENDIF(BBTK_USE_KWWIDGETS)
+#-----------------------------------------------------------------------------
+
+#-----------------------------------------------------------------------------
+IF(BBTK_USE_QT)
+  IF(QT_FOUND)
+    #--------------------------------------------------------------------------- 
+    # MOC
+    SET(QT4_HEADERS_TO_WRAP
+      bbtkQtBlackBoxDialog.h
+      )
+    QT4_WRAP_CPP(MOC_SOURCES ${QT4_HEADERS_TO_WRAP} OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED)
+    #--------------------------------------------------------------------------- 
+    # UI
+    QT4_WRAP_UI(UI_SOURCES
+      bbtkQtBlackBoxDialog.ui
+      )
+    SET(SOURCES ${SOURCES} ${MOC_SOURCES} ${UI_SOURCES})
+  ENDIF(QT_FOUND)
+
+# JFGA 03/12/2014 --  Temporal configuration of WT 
+# *********Missing if conditional Wt********
+   #find_package(Boost COMPONENTS system thread signals)
+   #find_library(wt wt)
+   #find_library(wtext wtext)
+   #find_library(wthttp wthttp)
+   INCLUDE_DIRECTORIES(/usr/local/lib/)
+
+
+ENDIF(BBTK_USE_QT)
+#-----------------------------------------------------------------------------
+
+
 #-----------------------------------------------------------------------------
 # lib definition
 ADD_LIBRARY(bbtk SHARED ${SOURCES} ${SOURCES_H})
 #-----------------------------------------------------------------------------
-TARGET_LINK_LIBRARIES(bbtk ${BBTK_LINK_LIBRARIES})
+TARGET_LINK_LIBRARIES(bbtk ${BBTK_LINK_LIBRARIES} ${BOOST_LIBRARIES}  ${crea_LIBRARIES} ${WT_LIBRARIES})
 #-----------------------------------------------------------------------------
+IF(UNIX)
+SET_TARGET_PROPERTIES(bbtk PROPERTIES COMPILE_FLAGS -Wall)
+ENDIF(UNIX)
 
 #IF(UNIX)
 # for gnu linker : version script used to define exported symbols
@@ -169,6 +213,7 @@ TARGET_LINK_LIBRARIES(bbtk ${BBTK_LINK_LIBRARIES})
 #ENDIF(UNIX)
 #-----------------------------------------------------------------------------
 
+
 #-----------------------------------------------------------------------------
 # EO bbtk library creation
 #-----------------------------------------------------------------------------
@@ -178,27 +223,96 @@ TARGET_LINK_LIBRARIES(bbtk ${BBTK_LINK_LIBRARIES})
 
 
 
-#-----------------------------------------------------------------------------
+
+#=============================================================================
 # bbtk library installation
+#=============================================================================
+
+
+#-----------------------------------------------------------------------------
+FILE(GLOB BBTK_HEADERS "*.h" "*.txx")
+INSTALL(FILES ${BBTK_HEADERS} DESTINATION include/bbtk)
+INSTALL(TARGETS bbtk DESTINATION ${BBTK_LIB_PATH})
 #-----------------------------------------------------------------------------
 
 #-----------------------------------------------------------------------------
-INSTALL_FILES(/include/bbtk "\\.h$")
-INSTALL_TARGETS(/lib bbtk)
+# Code installing the files needed to find the lib by FIND_PACKAGE
+# Uses CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE
 #-----------------------------------------------------------------------------
 
 
 #-----------------------------------------------------------------------------
-# TO DO : create FindBBTK.cmake
-#INCLUDE(InstallFindBBTK.cmake)
+# - Set the variable LIBRARY_NAME to the name of your library
+SET(LIBRARY_NAME BBTK)
+SET(${LIBRARY_NAME}_INSTALL_FOLDER bbtk)
+SET(${LIBRARY_NAME}_LIBRARIES bbtk)
+SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS kernel/src)
+#kernel/src/ThirdParty)
+#IF(BBTK_USE_SHIPPED_BOOST)
+#  SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS
+#    ${${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS} 
+#    kernel/src/ThirdParty/${BBTK_SHIPPED_BOOST}
+#    )
+#ENDIF(BBTK_USE_SHIPPED_BOOST)
+IF(UNIX)
+  SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS 
+    ${EXECUTABLE_OUTPUT_REL_PATH})
+ELSE(UNIX)
+  SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_LIBRARY_PATHS
+    ${EXECUTABLE_OUTPUT_REL_PATH}
+    .
+    )
+    #${EXECUTABLE_OUTPUT_REL_PATH})/Debug
+    #${EXECUTABLE_OUTPUT_REL_PATH}/Release)
+ENDIF(UNIX)
+SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_INCLUDE_PATHS include/bbtk)
+# include/bbtk/ThirdParty)
+SET(${LIBRARY_NAME}_INSTALL_TREE_RELATIVE_LIBRARY_PATHS ${BBTK_LIB_PATH})
+
+# OPTIONAL 
+# - Set the version of your library
+# SET YOUR LIB VERSION
+#SET(${LIBRARY_NAME}_MAJOR_VERSION 1)
+#SET(${LIBRARY_NAME}_MINOR_VERSION 0)
+#SET(${LIBRARY_NAME}_BUILD_VERSION 0)
+# REQUIRED BUILD FLAGS
+#SET(${LIBRARY_NAME}_REQUIRED_C_FLAGS "")
+#SET(${LIBRARY_NAME}_REQUIRED_CXX_FLAGS "")
+#SET(${LIBRARY_NAME}_REQUIRED_LINK_FLAGS "")
+# ADDITIONAL CONFIG FILE
+# HERE WE USE ONE TO EXPORT testLib_EXPORTED_VALUE
+# 
+SET(${LIBRARY_NAME}_HAS_ADDITIONAL_CONFIG_FILE TRUE)
+SET(${LIBRARY_NAME}_ADDITIONAL_CONFIG_FILE 
+  ${PROJECT_SOURCE_DIR}/kernel/cmake/AdditionalBBTKConfig.cmake.in)
+SET(${LIBRARY_NAME}_ADDITIONAL_USE_FILE 
+  ${PROJECT_SOURCE_DIR}/kernel/cmake/AdditionalUseBBTK.cmake.in)
 #-----------------------------------------------------------------------------
 
+#-----------------------------------------------------------------------------
+CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE(${LIBRARY_NAME})
+
+#-----------------------------------------------------------------------------
 
 #-----------------------------------------------------------------------------
 # EO bbtk library installation
 #-----------------------------------------------------------------------------
 
 
+#-----------------------------------------------------------------------------
+# Recurse in EditorGraphicBBS to build the needed libs
+#EED ADD_SUBDIRECTORY(EditorGraphicBBS)
+#-----------------------------------------------------------------------------
+
+
+#-----------------------------------------------------------------------------
+# Recurse in ThirdParty to build the needed libs
+#ADD_SUBDIRECTORY(ThirdParty)
+#-----------------------------------------------------------------------------
+
+
+MESSAGE(STATUS "=======================================")
+MESSAGE(STATUS "")
 
 #-----------------------------------------------------------------------------
 # EOF