]> Creatis software - bbtk.git/blob - kernel/cmake/BBTKCreatePackageIncludeScript.cmake
Feature #1774
[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   SET(OUTPUT_FILE ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}.bbp)
85   FILE(WRITE 
86     "${OUTPUT_FILE}" 
87     "#-----------------------------------------\n"
88     "# Include script for bbtk package '${BBTK_PACKAGE_NAME}'\n"
89     "# Automatically generated by cmake (macro BBTK_CREATE_PACKAGE_INCLUDE_SCRIPT)\n")
90   FILE(APPEND 
91     "${OUTPUT_FILE}"
92     "#-----------------------------------------\n"
93     "load ${BBTK_PACKAGE_NAME}\n"
94     "#-----------------------------------------\n"
95     "package ${BBTK_PACKAGE_NAME}\n"
96     )
97   
98   #FILE(APPEND 
99   #  "${OUTPUT_FILE}"
100   #  "#-----------------------------------------\n"
101   #  "include ${BBTK_PACKAGE_NAME}/boxes/*\n"
102   #  )
103   
104   FOREACH(bbs ${BBTK_PACKAGE_BBS_BOXES})  
105     FILE(APPEND 
106       "${OUTPUT_FILE}"
107       "#-----------------------------------------\n"
108       "include ${BBTK_PACKAGE_NAME}/${bbs}\n"
109       )
110     CONFIGURE_FILE(
111       ${CMAKE_CURRENT_SOURCE_DIR}/${bbs}
112       ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}/${bbs}
113       COPYONLY
114       )
115     GET_FILENAME_COMPONENT(bbs_path ${bbs} PATH)
116     
117     
118     IF(WIN32)
119     INSTALL(
120       FILES ${CMAKE_CURRENT_SOURCE_DIR}/${bbs}
121 #      DESTINATION ${BBTK_BBS_INSTALL_PATH}/${BBTK_PACKAGE_NAME}/${bbs_path}
122       DESTINATION ${BBTK_BBS_REL_PATH}/${BBTK_PACKAGE_NAME}/${bbs_path}
123     )
124 ELSE(WIN32)
125 INSTALL(
126       FILES ${CMAKE_CURRENT_SOURCE_DIR}/${bbs}
127       DESTINATION ${BBTK_BBS_INSTALL_PATH}/${BBTK_PACKAGE_NAME}/${bbs_path}
128 #      DESTINATION ${BBTK_BBS_REL_PATH}/${BBTK_PACKAGE_NAME}/${bbs_path}
129     )
130 ENDIF(WIN32)
131   ENDFOREACH(bbs)
132
133
134
135   ##  --Configure and installing bbs appli--
136   FILE(APPEND 
137     "${OUTPUT_FILE}"
138       "#-----------------------------------------\n"
139       "endpackage\n"
140       "#-- EOF ----------------------------------\n"
141     )
142  IF(WIN32)
143   INSTALL(
144     FILES ${OUTPUT_FILE}
145 #    DESTINATION ${BBTK_BBS_INSTALL_PATH}
146     DESTINATION ${BBTK_BBS_REL_PATH}
147     )
148 ELSE(WIN32)
149   INSTALL(
150     FILES ${OUTPUT_FILE}
151     DESTINATION ${BBTK_BBS_INSTALL_PATH}
152 #   DESTINATION ${BBTK_BBS_REL_PATH}
153     )
154 ENDIF(WIN32)
155   # Creates the file ${BBTK_PACKAGE_NAME}-appli.bbp
156   SET(OUTPUT_FILE ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}-appli.bbp)
157   FILE(WRITE 
158     "${OUTPUT_FILE}" 
159     "#-----------------------------------------\n"
160     "# Applications include script for bbtk package '${BBTK_PACKAGE_NAME}'\n"
161     "# Automatically generated by cmake (macro BBTK_CREATE_PACKAGE_INCLUDE_SCRIPT)\n")
162   FILE(APPEND 
163     "${OUTPUT_FILE}"
164     "#-----------------------------------------\n"
165     "load ${BBTK_PACKAGE_NAME}\n"
166     "#-----------------------------------------\n"
167     "package ${BBTK_PACKAGE_NAME}\n"
168     )
169
170   FOREACH(bbs ${BBTK_PACKAGE_BBS_APPLI}) 
171  
172     GET_FILENAME_COMPONENT(filename "${bbs}" NAME_WE) 
173     FILE(APPEND 
174       "${OUTPUT_FILE}"
175       "#-----------------------------------------\n"
176       "define ${filename}\n"
177       "include ${BBTK_PACKAGE_NAME}/${bbs} source\n"
178       "endefine\n"
179       )
180       
181     CONFIGURE_FILE(
182       ${CMAKE_CURRENT_SOURCE_DIR}/${bbs}
183       ${BBTK_BBS_BUILD_PATH}/${BBTK_PACKAGE_NAME}/${bbs}
184       COPYONLY
185       )
186     GET_FILENAME_COMPONENT(bbs_path ${bbs} PATH)
187     
188     
189     IF(WIN32)
190     INSTALL(
191       FILES ${CMAKE_CURRENT_SOURCE_DIR}/${bbs}
192   #    DESTINATION ${BBTK_BBS_INSTALL_PATH}/${BBTK_PACKAGE_NAME}/${bbs_path}
193       DESTINATION ${BBTK_BBS_REL_PATH}/${BBTK_PACKAGE_NAME}/${bbs_path}
194       )
195 ELSE(WIN32)
196     INSTALL(
197       FILES ${CMAKE_CURRENT_SOURCE_DIR}/${bbs}
198       DESTINATION ${BBTK_BBS_INSTALL_PATH}/${BBTK_PACKAGE_NAME}/${bbs_path}
199   #    DESTINATION ${BBTK_BBS_REL_PATH}/${BBTK_PACKAGE_NAME}/${bbs_path}
200       )
201 ENDIF(WIN32)
202   ENDFOREACH(bbs)
203   FILE(APPEND 
204     "${OUTPUT_FILE}"
205       "#-----------------------------------------\n"
206       "endpackage\n"
207       "#-- EOF ----------------------------------\n"
208     )
209 IF(WIN32)  
210   INSTALL(
211     FILES ${OUTPUT_FILE}
212    # DESTINATION ${BBTK_BBS_INSTALL_PATH}
213     DESTINATION ${BBTK_BBS_REL_PATH}
214     )
215 ELSE(WIN32)  
216   INSTALL(
217     FILES ${OUTPUT_FILE}
218     DESTINATION ${BBTK_BBS_INSTALL_PATH}
219    # DESTINATION ${BBTK_BBS_REL_PATH}
220     )
221 ENDIF(WIN32)  
222 #  ADD_CUSTOM_TARGET(${BBTK_PACKAGE_NAME}.bbp ALL
223 #    DEPENDS  ${OUTPUT_FILE}
224 #    )
225
226
227 ENDMACRO(BBTK_CREATE_PACKAGE_INCLUDE_SCRIPT)