]> Creatis software - bbtk.git/blob - kernel/cmake/BBTKCreatePackageIncludeScript.cmake
2042 Feature bbpConfigurator
[bbtk.git] / kernel / cmake / BBTKCreatePackageIncludeScript.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 MACRO(BBTK_CREATE_PACKAGE_INCLUDE_SCRIPT    BBTK_PACKAGE_NAME    BBTK_PACKAGE_BBS_BOXES    BBTK_PACKAGE_BBS_APPLI  BBTK_PACKAGE_BBG_BOXES    BBTK_PACKAGE_BBG_APPLI )
30
31
32   ##  --Configure and installing bbg boxes--
33   FOREACH(bbg ${BBTK_PACKAGE_BBG_BOXES})  
34     CONFIGURE_FILE(
35       ${CMAKE_CURRENT_SOURCE_DIR}/${bbg}
36       ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}/${bbg}
37       COPYONLY
38       )
39     GET_FILENAME_COMPONENT(bbg_path ${bbg} PATH)    
40     IF(WIN32)
41         INSTALL(
42                 FILES ${CMAKE_CURRENT_SOURCE_DIR}/${bbg}
43                 DESTINATION ${BBTK_BBS_REL_PATH}/${BBTK_PACKAGE_NAME}/${bbg_path}
44         )
45     ELSE(WIN32)
46         INSTALL(
47                 FILES ${CMAKE_CURRENT_SOURCE_DIR}/${bbg}
48                 DESTINATION ${BBTK_BBS_INSTALL_PATH}/${BBTK_PACKAGE_NAME}/${bbg_path}
49         )
50     ENDIF(WIN32)
51   ENDFOREACH(bbg)
52
53
54   ##  --Configure and installing bbg appli--
55   FOREACH(bbg ${BBTK_PACKAGE_BBG_APPLI})  
56     CONFIGURE_FILE(
57       ${CMAKE_CURRENT_SOURCE_DIR}/${bbg}
58       ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}/${bbg}
59       COPYONLY
60       )
61     GET_FILENAME_COMPONENT(bbg_path ${bbg} PATH)    
62     IF(WIN32)
63         INSTALL(
64                 FILES ${CMAKE_CURRENT_SOURCE_DIR}/${bbg}
65                 DESTINATION ${BBTK_BBS_REL_PATH}/${BBTK_PACKAGE_NAME}/${bbg_path}
66         )
67     ELSE(WIN32)
68         INSTALL(
69                 FILES ${CMAKE_CURRENT_SOURCE_DIR}/${bbg}
70                 DESTINATION ${BBTK_BBS_INSTALL_PATH}/${BBTK_PACKAGE_NAME}/${bbg_path}
71         )
72     ENDIF(WIN32)
73   ENDFOREACH(bbg)
74
75
76
77
78
79
80
81
82   ##  --Configure and installing bbs boxes--
83   # --Creates the file ${BBTK_PACKAGE_NAME}.bbp--
84  
85 ## bbpConfigurator   create de PACKAGE.bbp file
86 ## bbConfigurator <path_to_bbs> <package_name> <output_path>
87
88
89   SET(OUTPUT_FILE ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}.bbp)
90
91   IF (WIN32)
92     MAKE_DLL_PATH()
93  #   SET(command00 Path=c:/creatis/dlls__RR__%WXWIN%/lib/vc_dll/__RR__%VTK_DIR%__RR__%ITK_DIR%/../../bin/__RR__%PATH%)
94  #   STRING(REPLACE "__RR__" "\;" SETPATH ${command00} )
95  #   SET(SETPATH set ${command0} &&)
96
97 ##       SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
98 ##     ADD_CUSTOM_TARGET( bb${BBTK_PACKAGE_NAME}.bbp ALL
99 ##        COMMAND  set "Path=${crea_DIR}/bin/\;"${DLL_PATH} && $(OutDir)/../../Release/bbpConfigurator.exe ${CMAKE_CURRENT_SOURCE_DIR}/boxes/  ${BBTK_PACKAGE_NAME}  ${BBTK_BBS_BUILD_PATH}/
100 ##     ) 
101
102 ##   ADD_CUSTOM_COMMAND( 
103 ##       OUTPUT a
104 ##       TARGET  bb${BBTK_PACKAGE_NAME} PRE_BUILD
105 ##              COMMAND dir
106 ##      COMMAND  set "Path=${crea_DIR}/bin/\;"${DLL_PATH} && $(OutDir)/../../Release/bbpConfigurator.exe ${CMAKE_CURRENT_SOURCE_DIR}/boxes/  ${BBTK_PACKAGE_NAME}  ${BBTK_BBS_BUILD_PATH}/
107 ##    ) 
108         
109   ELSE(WIN32)
110     SET(LD_LIBRARY_PATH "$ENV{LD_LIBRARY_PATH}:${LIBRARY_OUTPUT_PATH}")
111     ADD_CUSTOM_TARGET( bb${BBTK_PACKAGE_NAME}.bbp ALL
112 ##    COMMAND export LD_LIBRARY_PATH=${LD_LIBRARY_PATH} && ${BBTK_BBPCONFIGURATOR}  ${CMAKE_CURRENT_SOURCE_DIR}/boxes/  ${BBTK_PACKAGE_NAME}  ${BBTK_BBS_BUILD_PATH}/
113       COMMAND  ${BBTK_BBPCONFIGURATOR} ${CMAKE_CURRENT_SOURCE_DIR}/boxes/  ${BBTK_PACKAGE_NAME}  ${BBTK_BBS_BUILD_PATH}/
114     ) 
115         
116   ENDIF(WIN32)
117
118
119
120 ##EED 24/06/2013
121 ##  FILE(WRITE 
122 ##    "${OUTPUT_FILE}" 
123 ##    "#-----------------------------------------\n"
124 ##    "# Include script for bbtk package '${BBTK_PACKAGE_NAME}'\n"
125 ##    "# Automatically generated by cmake (macro BBTK_CREATE_PACKAGE_INCLUDE_SCRIPT)\n")
126 ##  FILE(APPEND 
127 ##    "${OUTPUT_FILE}"
128 ##    "#-----------------------------------------\n"
129 ##    "load ${BBTK_PACKAGE_NAME}\n"
130 ##    "#-----------------------------------------\n"
131 ##    "package ${BBTK_PACKAGE_NAME}\n"
132 ##    )
133 ##  
134 ##  #FILE(APPEND 
135 ##  #  "${OUTPUT_FILE}"
136 ##  #  "#-----------------------------------------\n"
137 ##  #  "include ${BBTK_PACKAGE_NAME}/boxes/*\n"
138 ##  #  )
139 ##  
140
141   FOREACH(bbs ${BBTK_PACKAGE_BBS_BOXES})  
142
143 ##EED 24/06/2013
144 ##    FILE(APPEND 
145 ##      "${OUTPUT_FILE}"
146 ##      "#-----------------------------------------\n"
147 ##      "include ${BBTK_PACKAGE_NAME}/${bbs}\n"
148 ##      )
149
150     CONFIGURE_FILE(
151       ${CMAKE_CURRENT_SOURCE_DIR}/${bbs}
152       ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}/${bbs}
153       COPYONLY
154       )
155     GET_FILENAME_COMPONENT(bbs_path ${bbs} PATH)
156     
157     
158     IF(WIN32)
159       INSTALL(
160         FILES ${CMAKE_CURRENT_SOURCE_DIR}/${bbs}
161 #       DESTINATION ${BBTK_BBS_INSTALL_PATH}/${BBTK_PACKAGE_NAME}/${bbs_path}
162         DESTINATION ${BBTK_BBS_REL_PATH}/${BBTK_PACKAGE_NAME}/${bbs_path}
163       )
164     ELSE(WIN32)
165       INSTALL(
166         FILES ${CMAKE_CURRENT_SOURCE_DIR}/${bbs}
167         DESTINATION ${BBTK_BBS_INSTALL_PATH}/${BBTK_PACKAGE_NAME}/${bbs_path}
168 #       DESTINATION ${BBTK_BBS_REL_PATH}/${BBTK_PACKAGE_NAME}/${bbs_path}
169       )
170     ENDIF(WIN32)
171
172   ENDFOREACH(bbs)
173
174
175
176 ##EED 24/06/2013
177 ##  ##  --Configure and installing bbs appli--
178 ##  FILE(APPEND 
179 ##    "${OUTPUT_FILE}"
180 ##      "#-----------------------------------------\n"
181 ##      "endpackage\n"
182 ##      "#-- EOF ----------------------------------\n"
183 ##    )
184
185  IF(WIN32)
186   INSTALL(
187     FILES ${OUTPUT_FILE}
188 #    DESTINATION ${BBTK_BBS_INSTALL_PATH}
189     DESTINATION ${BBTK_BBS_REL_PATH}
190     )
191 ELSE(WIN32)
192   INSTALL(
193     FILES ${OUTPUT_FILE}
194     DESTINATION ${BBTK_BBS_INSTALL_PATH}
195 #   DESTINATION ${BBTK_BBS_REL_PATH}
196     )
197 ENDIF(WIN32)
198
199
200
201
202   # Creates the file ${BBTK_PACKAGE_NAME}-appli.bbp
203   SET(OUTPUT_FILE ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}-appli.bbp)
204   FILE(WRITE 
205     "${OUTPUT_FILE}" 
206     "#-----------------------------------------\n"
207     "# Applications include script for bbtk package '${BBTK_PACKAGE_NAME}'\n"
208     "# Automatically generated by cmake (macro BBTK_CREATE_PACKAGE_INCLUDE_SCRIPT)\n")
209   FILE(APPEND 
210     "${OUTPUT_FILE}"
211     "#-----------------------------------------\n"
212     "load ${BBTK_PACKAGE_NAME}\n"
213     "#-----------------------------------------\n"
214     "package ${BBTK_PACKAGE_NAME}\n"
215     )
216
217   FOREACH(bbs ${BBTK_PACKAGE_BBS_APPLI}) 
218  
219     GET_FILENAME_COMPONENT(filename "${bbs}" NAME_WE) 
220     FILE(APPEND 
221       "${OUTPUT_FILE}"
222       "#-----------------------------------------\n"
223       "define ${filename}\n"
224       "include ${BBTK_PACKAGE_NAME}/${bbs} source\n"
225       "endefine\n"
226       )
227       
228     CONFIGURE_FILE(
229       ${CMAKE_CURRENT_SOURCE_DIR}/${bbs}
230       ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}/${bbs}
231       COPYONLY
232       )
233     GET_FILENAME_COMPONENT(bbs_path ${bbs} PATH)
234     
235     
236     IF(WIN32)
237     INSTALL(
238       FILES ${CMAKE_CURRENT_SOURCE_DIR}/${bbs}
239   #    DESTINATION ${BBTK_BBS_INSTALL_PATH}/${BBTK_PACKAGE_NAME}/${bbs_path}
240       DESTINATION ${BBTK_BBS_REL_PATH}/${BBTK_PACKAGE_NAME}/${bbs_path}
241       )
242 ELSE(WIN32)
243     INSTALL(
244       FILES ${CMAKE_CURRENT_SOURCE_DIR}/${bbs}
245       DESTINATION ${BBTK_BBS_INSTALL_PATH}/${BBTK_PACKAGE_NAME}/${bbs_path}
246   #    DESTINATION ${BBTK_BBS_REL_PATH}/${BBTK_PACKAGE_NAME}/${bbs_path}
247       )
248 ENDIF(WIN32)
249   ENDFOREACH(bbs)
250   FILE(APPEND 
251     "${OUTPUT_FILE}"
252       "#-----------------------------------------\n"
253       "endpackage\n"
254       "#-- EOF ----------------------------------\n"
255     )
256 IF(WIN32)  
257   INSTALL(
258     FILES ${OUTPUT_FILE}
259    # DESTINATION ${BBTK_BBS_INSTALL_PATH}
260     DESTINATION ${BBTK_BBS_REL_PATH}
261     )
262 ELSE(WIN32)  
263   INSTALL(
264     FILES ${OUTPUT_FILE}
265     DESTINATION ${BBTK_BBS_INSTALL_PATH}
266    # DESTINATION ${BBTK_BBS_REL_PATH}
267     )
268 ENDIF(WIN32)  
269 #  ADD_CUSTOM_TARGET(${BBTK_PACKAGE_NAME}.bbp ALL
270 #    DEPENDS  ${OUTPUT_FILE}
271 #    )
272
273
274 ENDMACRO(BBTK_CREATE_PACKAGE_INCLUDE_SCRIPT)