]> Creatis software - bbtk.git/blob - kernel/cmake/BBTKConfigurePackage_bbs.cmake
c7d7253f8d132172ec33db195b4cf6670b025445
[bbtk.git] / kernel / cmake / BBTKConfigurePackage_bbs.cmake
1  # ---------------------------------------------------------------------
2  #
3  # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
4  #                        pour la SantÈ)
5  # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6  # Previous Authors : Laurent Guigues, Jean-Pierre Roux
7  # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
8  #
9  #  This software is governed by the CeCILL-B license under French law and
10  #  abiding by the rules of distribution of free software. You can  use,
11  #  modify and/ or redistribute the software under the terms of the CeCILL-B
12  #  license as circulated by CEA, CNRS and INRIA at the following URL
13  #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
14  #  or in the file LICENSE.txt.
15  #
16  #  As a counterpart to the access to the source code and  rights to copy,
17  #  modify and redistribute granted by the license, users are provided only
18  #  with a limited warranty  and the software's author,  the holder of the
19  #  economic rights,  and the successive licensors  have only  limited
20  #  liability.
21  #
22  #  The fact that you are presently reading this means that you have had
23  #  knowledge of the CeCILL-B license and that you accept its terms.
24  # ------------------------------------------------------------------------ */
25
26
27
28 #----------------------------------------------------------------------------
29 IF(${BBTK_PACKAGE_NAME}_INCLUDE_ALL_BBS_BOXES) 
30   FILE(GLOB 
31     ${BBTK_PACKAGE_NAME}_BBS_BOXES 
32     RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
33     "boxes/*.bbs"
34     )
35
36   FILE(GLOB 
37     ${BBTK_PACKAGE_NAME}_BBG_BOXES 
38     RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
39     "boxes/*.bbg"
40     )
41
42
43 # !! Produces a cmake seg. fault :
44 #  FILE(GLOB 
45 #    ${BBTK_PACKAGE_NAME}_BBS_BOXES 
46 #    "boxes/"
47 #    )
48
49
50 ENDIF(${BBTK_PACKAGE_NAME}_INCLUDE_ALL_BBS_BOXES) 
51 #----------------------------------------------------------------------------
52
53 #----------------------------------------------------------------------------
54 IF(${BBTK_PACKAGE_NAME}_INCLUDE_ALL_BBS_APPLI) 
55
56   FILE(GLOB ${BBTK_PACKAGE_NAME}_BBS_APPLI 
57     RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
58     "appli/*.bbs"
59     )
60   FILE(GLOB ${BBTK_PACKAGE_NAME}_BBG_APPLI 
61     RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
62     "appli/*.bbg"
63     )
64
65
66 ENDIF(${BBTK_PACKAGE_NAME}_INCLUDE_ALL_BBS_APPLI) 
67 #----------------------------------------------------------------------------
68
69 #----------------------------------------------------------------------------
70 INCLUDE(${BBTK_CMAKE_DIR}/BBTKCreatePackageIncludeScript.cmake)
71
72 BBTK_CREATE_PACKAGE_INCLUDE_SCRIPT(
73   "${BBTK_PACKAGE_NAME}"
74   "${${BBTK_PACKAGE_NAME}_BBS_BOXES}"
75   "${${BBTK_PACKAGE_NAME}_BBS_APPLI}"
76   "${${BBTK_PACKAGE_NAME}_BBG_BOXES}"
77   "${${BBTK_PACKAGE_NAME}_BBG_APPLI}"
78   )
79 #----------------------------------------------------------------------------
80
81   IF(NOT WIN32)
82     # runs bbRegeneratePackageDoc and bbRegenerateBoxesLists 
83     # as a post install step
84     # does not work on windaube
85     IF(NOT BBTK_CORE_PACKAGE)
86
87 ##EED 25oct2010
88 #      INSTALL(CODE 
89 #       "EXECUTE_PROCESS(COMMAND echo -- Executing '${BBTK_BIN_PATH}/bbPostInstallPackage ${BBTK_PACKAGE_NAME}')"
90 #       )
91 #     INSTALL(CODE 
92 #       "EXECUTE_PROCESS(COMMAND ${BBTK_BIN_PATH}/bbPostInstallPackage ${BBTK_PACKAGE_NAME})"
93 #       )
94 # COMMAND cd ${BBTK_BIN_PATH} COMMAND export LD_LIBRARY_PATH=\"../lib:$ENV{LD_LIBRARY_PATH}\" COMMAND bbRegeneratePackageDoc ${BBTK_PACKAGE_NAME} COMMAND bbRegenerateBoxesLists COMMAND echo \"done\")")
95
96
97     ENDIF(NOT BBTK_CORE_PACKAGE)
98   ENDIF(NOT WIN32)
99
100
101 #----------------------------------------------------------------------------
102 #---------------------------------------------------------------------------
103 IF(BBTK_CORE_PACKAGE)
104   # If a core package set option from bbtk global one
105   IF (BUILD_BBS_APPLI_BINARIES)
106     SET(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME}_BBS_APP OFF)
107   ELSE (BUILD_BBS_APPLI_BINARIES)
108     SET(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME}_BBS_APP OFF)
109   ENDIF (BUILD_BBS_APPLI_BINARIES)
110 ELSE(BBTK_CORE_PACKAGE)
111   # If not a core package 
112   # Create the option
113   OPTION(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME}_BBS_APP 
114     "Build binaries for bbs applications of package ${BBTK_PACKAGE_NAME} ?" OFF)
115 ##EED  SWITCH_ON_IF_BUILD_ALL(BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME}_BBS_APP)
116 ENDIF(BBTK_CORE_PACKAGE)
117 #---------------------------------------------------------------------------
118
119
120 IF (BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME}_BBS_APP)
121   FOREACH(bbs ${${BBTK_PACKAGE_NAME}_BBS_APPLI})  
122     GET_FILENAME_COMPONENT(name "${bbs}" NAME_WE) 
123     SET(OUTPUT bb${name})
124     ADD_CUSTOM_COMMAND(
125       OUTPUT ${BBTK_BIN_PATH}/${OUTPUT}
126       COMMAND 
127       cd ${BBTK_BIN_PATH} && ${BBTK_BBC} ${BBTK_PACKAGE_NAME}/appli/${name}
128       DEPENDS ${bbs}
129       ${BBTK_BBS2CPP_DEPENDENCY} 
130       )
131     INSTALL(
132       FILES ${BBTK_BIN_PATH}/${OUTPUT}
133       DESTINATION bin
134       PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
135       )
136     ADD_CUSTOM_TARGET(
137       ${OUTPUT} ALL
138       DEPENDS ${BBTK_BIN_PATH}/${OUTPUT} 
139       )
140   ENDFOREACH(bbs)
141 ENDIF (BUILD_BBTK_PACKAGE_${BBTK_PACKAGE_NAME}_BBS_APP)
142 #----------------------------------------------------------------------------