]> Creatis software - bbtk.git/blobdiff - kernel/src/CMakeLists.txt
*** empty log message ***
[bbtk.git] / kernel / src / CMakeLists.txt
index 6182ac14277859b51f61f5a71ad8f7f747f5c8b1..dcd505acba10353a43237f9cccba8dcc23788b4c 100644 (file)
@@ -91,6 +91,19 @@ IF(BBTK_USE_WXWIDGETS)
 ENDIF(BBTK_USE_WXWIDGETS)
 #-----------------------------------------------------------------------------
 
+#-----------------------------------------------------------------------------
+# BOOST 
+SET(BBTK_USE_BOOST TRUE)
+
+IF(BBTK_USE_BOOST)
+  SET(USE_BOOST ON CACHE BOOL "Use boost C++ library" FORCE)
+  SET(BBTK_LINK_LIBRARIES
+    ${BBTK_LINK_LIBRARIES}
+    ${BBTK_BOOST_LIBRARIES} 
+    ) 
+ENDIF(BBTK_USE_BOOST)
+#-----------------------------------------------------------------------------
+
 #-----------------------------------------------------------------------------
 # On unix systems, need to link against dl for dynamic librairies open/close
 IF(UNIX)
@@ -100,6 +113,8 @@ IF(UNIX)
 ENDIF(UNIX)
 #-----------------------------------------------------------------------------
 
+MESSAGE(STATUS "bbtk link libraries = ${BBTK_LINK_LIBRARIES}")
+
 #-----------------------------------------------------------------------------
 # EO bbtk library dependencies
 #-----------------------------------------------------------------------------
@@ -144,14 +159,17 @@ ENDIF(NOT BBTK_INSTALL_NO_DEVELOPMENT)
 
 
 
-
 #-----------------------------------------------------------------------------
 # bbtk library creation
 #-----------------------------------------------------------------------------
+# Symbols must be exported (Windows)
+ADD_DEF(BBTK_EXPORT_SYMBOLS)
 
+#ADD_DEFINITIONS(-DCHECKBOXVIEW=1)
 #-----------------------------------------------------------------------------
 # Sources files 
-FILE(GLOB SOURCES "." "*.cxx" "*.cpp")
+FILE(GLOB SOURCES "." "*.cxx" "*.cpp") 
+# "ThirdParty/wx/treemultictrl/*.cpp")
 FILE(GLOB SOURCES_H "." "*.h" )
 #-----------------------------------------------------------------------------
 # lib definition
@@ -159,6 +177,7 @@ ADD_LIBRARY(bbtk SHARED ${SOURCES} ${SOURCES_H})
 #-----------------------------------------------------------------------------
 TARGET_LINK_LIBRARIES(bbtk ${BBTK_LINK_LIBRARIES})
 #-----------------------------------------------------------------------------
+SET_TARGET_PROPERTIES(bbtk PROPERTIES COMPILE_FLAGS -Wall)
 
 #IF(UNIX)
 # for gnu linker : version script used to define exported symbols
@@ -178,27 +197,85 @@ TARGET_LINK_LIBRARIES(bbtk ${BBTK_LINK_LIBRARIES})
 
 
 
-#-----------------------------------------------------------------------------
+
+#=============================================================================
 # bbtk library installation
+#=============================================================================
+
+
+#-----------------------------------------------------------------------------
+FILE(GLOB BBTK_HEADERS "*.h")
+INSTALL(FILES ${BBTK_HEADERS} DESTINATION include/bbtk)
+INSTALL(TARGETS bbtk DESTINATION lib)
+IF(WIN32)
+  INSTALL(TARGETS bbtk DESTINATION bin/)
+ENDIF(WIN32)
 #-----------------------------------------------------------------------------
 
 #-----------------------------------------------------------------------------
-INSTALL_FILES(/include/bbtk "\\.h$")
-INSTALL_TARGETS(/lib bbtk)
+# Code installing the files needed to find the lib by FIND_PACKAGE
+# Uses CMakeCreateFindPackage 
 #-----------------------------------------------------------------------------
 
 
 #-----------------------------------------------------------------------------
-# 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}/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 lib)
+
+# 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)
 #-----------------------------------------------------------------------------
 
+#-----------------------------------------------------------------------------
+# Includes CMakeCreateFindPackage
+INCLUDE(${CMakeCreateFindPackage_DIR}/CMakeCreateFindPackage.cmake)
+CMAKE_CREATE_FIND_PACKAGE(${LIBRARY_NAME})
+#-----------------------------------------------------------------------------
 
 #-----------------------------------------------------------------------------
 # EO bbtk library installation
 #-----------------------------------------------------------------------------
 
 
+#-----------------------------------------------------------------------------
+# Recurse in ThirdParty to build the needed libs
+SUBDIRS(ThirdParty)
+#-----------------------------------------------------------------------------
 
 #-----------------------------------------------------------------------------
 # EOF