annotate generator/CMakeLists.txt @ 114:547cd31fa12a

CMake: improve of the windows support for ldc.
author SokoL_SD
date Wed, 03 Jun 2009 15:53:24 +0000
parents eb3b5bbffc8f
children a860544c5ee8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
1 PROJECT(generator CXX C)
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
2 cmake_minimum_required(VERSION 2.6)
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
3 FIND_PACKAGE(Qt4 REQUIRED)
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
4
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
5 ## Sources
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
6 set(srcs
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
7 classlistgenerator.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
8 cppgenerator.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
9 cppheadergenerator.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
10 cppimplgenerator.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
11 docparser.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
12 generatorsetd.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
13 dgenerator.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
14 jumptable.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
15 metainfogenerator.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
16 metajavabuilder.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
17 qdocgenerator.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
18 uiconverter.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
19 containergenerator.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
20
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
21 generator.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
22 main.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
23 reporthandler.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
24 typeparser.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
25 typesystem.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
26 asttoxml.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
27 fileout.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
28 generatorset.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
29 metajava.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
30 customtypes.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
31 abstractmetabuilder.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
32 abstractmetalang.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
33 prigenerator.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
34
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
35 # rxx
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
36 parser/ast.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
37 parser/lexer.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
38 parser/list.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
39 parser/parser.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
40 parser/smallobject.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
41 parser/control.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
42 parser/visitor.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
43 parser/default_visitor.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
44 parser/dumptree.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
45 parser/tokens.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
46 parser/binder.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
47 parser/codemodel.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
48 parser/type_compiler.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
49 parser/name_compiler.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
50 parser/declarator_compiler.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
51 parser/class_compiler.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
52 parser/codemodel_finder.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
53 parser/compiler_utils.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
54
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
55 ## rpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
56 parser/rpp/preprocessor.cpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
57 )
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
58 ## Moc headers
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
59 set(moc_hdrs
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
60 classlistgenerator.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
61 cppgenerator.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
62 cppheadergenerator.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
63 cppimplgenerator.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
64 docparser.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
65 generatorsetd.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
66 dgenerator.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
67 jumptable.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
68 metainfogenerator.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
69 metajavabuilder.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
70 qdocgenerator.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
71 uiconverter.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
72 containergenerator.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
73 generator.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
74 main.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
75 reporthandler.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
76 typeparser.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
77 typesystem.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
78 asttoxml.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
79 fileout.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
80 generatorset.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
81 metajava.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
82 customtypes.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
83 abstractmetabuilder.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
84 abstractmetalang.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
85 prigenerator.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
86
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
87 ## rxx
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
88 parser/ast.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
89 parser/lexer.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
90 parser/list.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
91 parser/parser.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
92 parser/rxx_allocator.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
93 parser/rpp-allocator.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
94 parser/smallobject.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
95 parser/tokens.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
96 parser/symbol.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
97 parser/control.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
98 parser/visitor.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
99 parser/default_visitor.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
100 parser/dumptree.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
101 parser/binder.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
102 parser/codemodel.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
103 parser/codemodel_pointer.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
104 parser/codemodel_fwd.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
105 parser/type_compiler.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
106 parser/name_compiler.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
107 parser/declarator_compiler.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
108 parser/class_compiler.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
109 parser/codemodel_finder.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
110 parser/compiler_utils.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
111
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
112 # rpp
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
113 parser/rpp/pp-cctype.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
114 parser/rpp/pp-engine-bits.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
115 parser/rpp/pp-engine.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
116 parser/rpp/pp-environment.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
117 parser/rpp/pp-fwd.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
118 parser/rpp/pp-internal.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
119 parser/rpp/pp-iterator.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
120 parser/rpp/pp-macro-expander.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
121 parser/rpp/pp-macro.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
122 parser/rpp/pp-scanner.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
123 parser/rpp/pp-string.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
124 parser/rpp/pp-symbol.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
125 parser/rpp/pp.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
126 parser/rpp/preprocessor.h
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
127
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
128 )
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
129
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
130 ## Resources.
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
131 set(res_files
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
132 generator.qrc
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
133 )
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
134
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
135 #win32-msvc2005:{
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
136 # QMAKE_CXXFLAGS += -wd4996
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
137 # QMAKE_CFLAGS += -wd4996
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
138 #}
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
139
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
140 #win32-msvc.net {
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
141 # QMAKE_CXXFLAGS += /Zm500
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
142 # QMAKE_CXXFLAGS -= -Zm200
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
143 # QMAKE_CFLAGS -= -Zm200
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
144 #}
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
145
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
146 ## Includes path.
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
147 set(inc_paths
23
907d517d37c6 CMake: Set Release configuration as default.
SokoL_SD
parents: 9
diff changeset
148 ${CMAKE_CURRENT_SOURCE_DIR}/../common
4
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
149 ${CMAKE_CURRENT_SOURCE_DIR}/parser
23
907d517d37c6 CMake: Set Release configuration as default.
SokoL_SD
parents: 9
diff changeset
150 ${CMAKE_CURRENT_SOURCE_DIR}
907d517d37c6 CMake: Set Release configuration as default.
SokoL_SD
parents: 9
diff changeset
151 ${CMAKE_CURRENT_SOURCE_DIR}/parser/rpp
907d517d37c6 CMake: Set Release configuration as default.
SokoL_SD
parents: 9
diff changeset
152 #${CMAKE_CURRENT_SOURCE_DIR}/parser/include
4
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
153 )
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
154
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
155 add_definitions(-DRXX_ALLOCATOR_INIT_0)
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
156
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
157 ## Build project
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
158 find_package (Qt4 REQUIRED)
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
159 set (QT_USE_QTMAIN true)
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
160 set (QT_USE_QTGUI false)
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
161 set (QT_USE_QTXML true)
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
162 include(${QT_USE_FILE} ${CMAKE_CURRENT_SOURCE_DIR})
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
163
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
164 set(inc_paths
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
165 ${inc_paths}
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
166 ${QT_INCLUDES}
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
167 )
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
168 set(lib_paths
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
169 ${lib_paths}
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
170 ${QT_LIBRARY_DIR}
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
171 )
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
172 set(libs
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
173 ${QT_LIBRARIES}
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
174 )
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
175
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
176 qt4_wrap_cpp(moc_srcs ${moc_hdrs})
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
177 qt4_add_resources(res_wrapped_files ${res_files})
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
178
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
179 set (all_srcs
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
180 ${srcs} ${moc_srcs}
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
181 ${res_wrapped_files})
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
182 include_directories(${inc_paths})
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
183 add_executable(generator ${all_srcs} )
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
184 target_link_libraries(generator ${libs})
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
185
27
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
186 macro(add_dgen_target package)
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
187 string(TOLOWER ${package} package)
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
188 set(dgen_build_conf ${CMAKE_BINARY_DIR}/CMakeFiles/built_${package}.txt)
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
189 set(dgen_build_conf_req ${CMAKE_BINARY_DIR}/CMakeFiles/built_${package}_with_req.txt)
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
190 file(REMOVE ${dgen_build_conf})
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
191 file(REMOVE ${dgen_build_conf_req})
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
192 file(APPEND ${dgen_build_conf} "<typesystem>\n")
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
193 file(APPEND ${dgen_build_conf_req} "<typesystem>\n")
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
194 foreach(req ${ARGN})
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
195 string(TOLOWER ${req} req_lower)
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
196 file(APPEND ${dgen_build_conf} " <load-typesystem name=\"typesystem_${req_lower}.xml\" generate=\"no\" />\n")
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
197 file(APPEND ${dgen_build_conf_req} " <load-typesystem name=\"typesystem_${req_lower}.xml\" generate=\"yes\" />\n")
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
198 endforeach(req ${ARGN})
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
199
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
200 if(${package} STREQUAL "all")
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
201 foreach(pack ${ARGN})
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
202 set(dgen_impl ${CMAKE_BINARY_DIR}/cpp/qt_${pack}/metainfo.cpp) ## Temporary
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
203 break(pack ${ARGN})
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
204 endforeach(pack ${ARGN})
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
205 else(${package} STREQUAL "all")
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
206 set(dgen_impl ${CMAKE_BINARY_DIR}/cpp/qt_${package}/qt_${package}.pri)
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
207 set(gen_sources ${gen_sources} ${CMAKE_SOURCE_DIR}/generator/typesystem_${package}.xml
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
208 ${CMAKE_SOURCE_DIR}/generator/typesystem_${package}-java.java)
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
209 file(APPEND ${dgen_build_conf} " <load-typesystem name=\"typesystem_${package}.xml\" generate=\"yes\" />\n")
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
210 file(APPEND ${dgen_build_conf_req} " <load-typesystem name=\"typesystem_${package}.xml\" generate=\"yes\" />\n")
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
211 endif(${package} STREQUAL "all")
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
212
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
213 file(APPEND ${dgen_build_conf} "</typesystem>\n")
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
214 file(APPEND ${dgen_build_conf_req} "</typesystem>\n")
4
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
215
27
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
216 foreach(pack ${ARGN})
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
217 string(TOLOWER ${pack} pack_lower)
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
218 set(gen_sources ${gen_sources} ${CMAKE_SOURCE_DIR}/generator/typesystem_${pack_lower}.xml
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
219 ${CMAKE_SOURCE_DIR}/generator/typesystem_${pack_lower}-java.java)
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
220 endforeach(pack ${ARGN})
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
221
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
222 add_custom_command(OUTPUT ${dgen_impl}
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
223 COMMAND ${CMAKE_COMMAND} -E remove -f ${dgen_impl}
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
224 COMMAND "generator"
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
225 ARGS ${GEN_OPT} --no-repreprocess --qt-include-directory=${QT_INCLUDE_DIR} --output-directory=./
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
226 --source-directory=${CMAKE_SOURCE_DIR}/generator
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
227 qtjambi_masterinclude.h
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
228 ${dgen_build_conf}
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
229 COMMENT "Generating binding..."
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
230 DEPENDS generator ${gen_sources}
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
231 )
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
232 add_custom_target(dgen_${package} DEPENDS ${dgen_impl} COMMENT "")
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
233 endmacro(add_dgen_target target package required)
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
234
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
235 foreach(pack ${packages})
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
236 set(gen_typesystem ${gen_typesystem} ${CMAKE_SOURCE_DIR}/generator/typesystem_${pack}.xml)
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
237 set(gen_sources ${gen_sources} ${CMAKE_SOURCE_DIR}/generator/typesystem_${pack}-java.java)
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
238 endforeach(pack ${packages})
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
239
31
eb2f212d17fe CMake: fix parameters list for generator.
SokoL_SD
parents: 30
diff changeset
240 set(dgen_build_conf ${CMAKE_BINARY_DIR}/CMakeFiles/build.txt)
27
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
241 file(REMOVE ${dgen_build_conf})
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
242 file(APPEND ${dgen_build_conf} "<typesystem>\n")
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
243 foreach(package ${packages})
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
244 file(APPEND ${dgen_build_conf} " <load-typesystem name=\"typesystem_${package}.xml\" generate=\"yes\" />\n")
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
245 endforeach(package ${packages})
a9626891eca6 CMake: generator will work only for needed packages.
SokoL_SD
parents: 23
diff changeset
246 file(APPEND ${dgen_build_conf} "</typesystem>\n")
4
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
247
42
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
248 # macro(add_sources_for_generating)
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
249 # set(parameters_list_file ${CMAKE_BINARY_DIR}/CMakeFiles/dgen_parameters)
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
250 # if(${CMAKE_SYSTEM_NAME} STREQUAL Windows)
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
251 # file(REMOVE ${parameters_list_file})
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
252 # foreach(arg ${ARGN})
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
253 # file(APPEND ${parameters_list_file} "${arg}\n")
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
254 # endforeach(arg)
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
255 # set(param @${parameters_list_file})
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
256 # elseif(${CMAKE_SYSTEM_NAME} STREQUAL Linux)
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
257 # set(param ${parameters})
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
258 # endif(${CMAKE_SYSTEM_NAME} STREQUAL Windows)
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
259 # foreach(dgen_impl ${ARGN})
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
260 # add_custom_command(OUTPUT ${dgen_impl}
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
261 # COMMAND ${CMAKE_COMMAND} -E remove -f ${param}
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
262 # COMMAND "generator"
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
263 # ARGS ${GEN_OPT} --qt-include-directory=${QT_INCLUDE_DIR} --output-directory=${CMAKE_BINARY_DIR}
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
264 # --source-directory=${CMAKE_SOURCE_DIR}/generator
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
265 # qtjambi_masterinclude.h
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
266 # ${CMAKE_BINARY_DIR}/CMakeFiles/build.txt
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
267 # COMMENT "Generating binding..."
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
268 # DEPENDS generator ${gen_typesystem} ${gen_sources}
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
269 # )
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
270 # endforeach(dgen_impl ${ARGN})
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
271 # add_custom_target(dgen DEPENDS ${ARGN})
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
272 # endmacro(add_sources_for_generating)
4
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
273
42
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
274 set(gen_sources)
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
275 foreach(package ${packages})
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
276 set(gen_sources ${gen_sources} ${CMAKE_SOURCE_DIR}/generator/typesystem_${package}.xml)
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
277 find_file(d_inc_file_found typesystem_${package}-java.java PATHS ${CMAKE_SOURCE_DIR}/generator/)
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
278 if(d_inc_file_found)
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
279 set(${CMAKE_SOURCE_DIR}/generator/typesystem_${package}-java.java)
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
280 endif(d_inc_file_found)
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
281 endforeach(package ${packages})
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
282 mark_as_advanced(d_inc_file_found)
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
283 set(d_inc_file_found 1)
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
284
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
285 foreach(package ${packages})
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
286 set(dgen_impl ${CMAKE_BINARY_DIR}/cpp/qt_${package}/qt_${package}.pri)
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
287 break(package ${packages})
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
288 endforeach(package ${packages})
32
a293cd68d56c CMake: correctly fix of the regression on windows (rev. 34).
SokoL_SD
parents: 31
diff changeset
289
42
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
290 add_custom_command(OUTPUT ${dgen_impl}
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
291 COMMAND ${CMAKE_COMMAND} -E remove -f ${dgen_impl}
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
292 COMMAND "generator"
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
293 ARGS ${GEN_OPT} --qt-include-directory=${QT_INCLUDE_DIR} --output-directory=${CMAKE_BINARY_DIR}
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
294 --source-directory=${CMAKE_SOURCE_DIR}/generator
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
295 qtjambi_masterinclude.h
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
296 ${CMAKE_BINARY_DIR}/CMakeFiles/build.txt
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
297 COMMENT "Generating binding..."
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
298 DEPENDS generator ${gen_sources}
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
299 )
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
300 add_custom_target(dgen DEPENDS ${dgen_impl} COMMENT "")
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
301
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
302 macro(add_sources_for_generating)
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
303 foreach(source ${ARGN})
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
304 add_custom_command(OUTPUT "${source}"
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
305 COMMAND ""
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
306 ARGS ""
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
307 DEPENDS ${dgen_impl}
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
308 COMMENT ""
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
309 )
eb3b5bbffc8f CMake: generator is not running multiple times.
SokoL_SD
parents: 32
diff changeset
310 endforeach(source ${ARGN})
4
0a29ce1ae854 CMake build script.
SokoL_SD
parents:
diff changeset
311 endmacro(add_sources_for_generating)