Commit | Line | Data |
---|---|---|
7eeb782e AT |
1 | INCLUDE_DIRECTORIES(${GNUGo_SOURCE_DIR}/patterns) |
2 | INCLUDE_DIRECTORIES(${GNUGo_SOURCE_DIR}/engine) | |
3 | INCLUDE_DIRECTORIES(${GNUGo_SOURCE_DIR}/sgf) | |
4 | INCLUDE_DIRECTORIES(${GNUGo_SOURCE_DIR}/utils) | |
5 | ||
6 | ########### mkpat program ############### | |
7 | ||
8 | SET(mkpat_SRCS | |
9 | mkpat.c | |
10 | transform.c | |
11 | dfa.c | |
12 | ) | |
13 | ||
14 | ADD_EXECUTABLE(mkpat ${mkpat_SRCS}) | |
15 | ||
16 | TARGET_LINK_LIBRARIES(mkpat utils) | |
17 | ||
18 | ||
19 | ########### joseki program ############### | |
20 | ||
21 | SET(joseki_SRCS | |
22 | joseki.c | |
23 | ) | |
24 | ||
25 | ADD_EXECUTABLE(joseki ${joseki_SRCS}) | |
26 | ||
27 | TARGET_LINK_LIBRARIES(joseki board sgf utils) | |
28 | ||
29 | ||
30 | ########### mkeyes program ############### | |
31 | ||
32 | SET(mkeyes_SRCS | |
33 | mkeyes.c | |
34 | ) | |
35 | ||
36 | ADD_EXECUTABLE(mkeyes ${mkeyes_SRCS}) | |
37 | ||
38 | TARGET_LINK_LIBRARIES(mkeyes utils) | |
39 | ||
40 | ||
41 | ########### mkmcpat program ############### | |
42 | ||
43 | SET(mkmcpat_SRCS | |
44 | mkmcpat.c | |
45 | ) | |
46 | ||
47 | ADD_EXECUTABLE(mkmcpat ${mkmcpat_SRCS}) | |
48 | ||
49 | IF(UNIX) | |
50 | SET(PLATFORM_LIBRARIES m) | |
51 | ENDIF(UNIX) | |
52 | ||
53 | TARGET_LINK_LIBRARIES(mkmcpat engine sgf utils ${PLATFORM_LIBRARIES}) | |
54 | ||
55 | ||
56 | ########### uncompress_fuseki program ############### | |
57 | ||
58 | SET(uncompress_fuseki_SRCS | |
59 | uncompress_fuseki.c | |
60 | ) | |
61 | ||
62 | ADD_EXECUTABLE(uncompress_fuseki ${uncompress_fuseki_SRCS}) | |
63 | ||
64 | TARGET_LINK_LIBRARIES(uncompress_fuseki utils board sgf) | |
65 | ||
66 | ||
67 | ########### extract_fuseki program ############### | |
68 | ||
69 | SET(extract_fuseki_SRCS | |
70 | extract_fuseki.c | |
71 | ) | |
72 | ||
73 | ADD_EXECUTABLE(extract_fuseki ${extract_fuseki_SRCS}) | |
74 | ||
75 | TARGET_LINK_LIBRARIES(extract_fuseki engine patterns | |
76 | engine patterns sgf utils) | |
77 | ||
78 | ||
79 | ########### next target ############### | |
80 | ||
81 | SET(compress_fuseki_SRCS | |
82 | compress_fuseki.c | |
83 | ) | |
84 | ||
85 | ADD_EXECUTABLE(compress_fuseki ${compress_fuseki_SRCS}) | |
86 | ||
87 | TARGET_LINK_LIBRARIES(compress_fuseki) | |
88 | ||
89 | ||
90 | ########### Generate files. ############## | |
91 | ||
92 | GET_TARGET_PROPERTY(JOSEKI_EXE joseki LOCATION) | |
93 | GET_TARGET_PROPERTY(MKPAT_EXE mkpat LOCATION) | |
94 | GET_TARGET_PROPERTY(MKEYES_EXE mkeyes LOCATION) | |
95 | GET_TARGET_PROPERTY(MKMCPAT_EXE mkmcpat LOCATION) | |
96 | GET_TARGET_PROPERTY(UNCOMPRESS_FUSEKI_EXE uncompress_fuseki LOCATION) | |
97 | ||
98 | SET(JOSEKI_INPUTS "") | |
99 | SET(JOSEKI_NAMES "") | |
100 | SET(GG_BUILT_SOURCES "") | |
101 | MACRO(BUILD_JOSEKI NAME PREFIX) | |
102 | ADD_CUSTOM_COMMAND( | |
103 | OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.db | |
104 | COMMAND ${JOSEKI_EXE} ${PREFIX} | |
105 | ${CMAKE_CURRENT_SOURCE_DIR}/${NAME}.sgf | |
106 | > ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.db | |
107 | DEPENDS joseki ${CMAKE_CURRENT_SOURCE_DIR}/${NAME}.sgf | |
108 | ) | |
109 | SET(JOSEKI_INPUTS ${JOSEKI_INPUTS} | |
110 | "-i" ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.db) | |
111 | SET(JOSEKI_NAMES ${JOSEKI_NAMES} | |
112 | ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.db) | |
113 | ENDMACRO(BUILD_JOSEKI) | |
114 | ||
115 | BUILD_JOSEKI(gogo JG) | |
116 | BUILD_JOSEKI(hoshi_keima JHK) | |
117 | BUILD_JOSEKI(hoshi_other JHO) | |
118 | BUILD_JOSEKI(komoku JK) | |
119 | BUILD_JOSEKI(sansan JS) | |
120 | BUILD_JOSEKI(mokuhazushi JM) | |
121 | BUILD_JOSEKI(takamoku JT) | |
122 | ||
123 | MACRO(RUN_MKPAT OPTIONS1 OPTIONS2 PATNAME DBNAME CNAME) | |
124 | ADD_CUSTOM_COMMAND( | |
125 | OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CNAME} | |
126 | COMMAND ${MKPAT_EXE} ${OPTIONS1} ${OPTIONS2} ${PATNAME} | |
127 | -i ${CMAKE_CURRENT_SOURCE_DIR}/${DBNAME} | |
128 | -o ${CMAKE_CURRENT_BINARY_DIR}/${CNAME} | |
129 | DEPENDS mkpat ${CMAKE_CURRENT_SOURCE_DIR}/${DBNAME} | |
130 | ) | |
131 | SET(GG_BUILT_SOURCES ${GG_BUILT_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/${CNAME}) | |
132 | ENDMACRO(RUN_MKPAT) | |
133 | ||
134 | SET(DFAFLAGS -D -m) | |
135 | ||
136 | MACRO(RUN_MKPAT_DFA OPTIONS PATNAME DTRNAME DBNAME CNAME) | |
137 | ADD_CUSTOM_COMMAND( | |
138 | OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CNAME} | |
139 | COMMAND ${MKPAT_EXE} ${DFAFLAGS} ${OPTIONS} | |
140 | -t ${CMAKE_CURRENT_SOURCE_DIR}/${DTRNAME} ${PATNAME} | |
141 | -i ${CMAKE_CURRENT_SOURCE_DIR}/${DBNAME} | |
142 | -o ${CMAKE_CURRENT_BINARY_DIR}/${CNAME} | |
143 | DEPENDS mkpat ${CMAKE_CURRENT_SOURCE_DIR}/${DBNAME} | |
144 | ${CMAKE_CURRENT_SOURCE_DIR}/${DTRNAME} | |
145 | ) | |
146 | SET(GG_BUILT_SOURCES ${GG_BUILT_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/${CNAME}) | |
147 | ENDMACRO(RUN_MKPAT_DFA) | |
148 | ||
149 | MACRO(RUN_UNCOMPRESS_FUSEKI BOARDSIZE) | |
150 | ADD_CUSTOM_COMMAND( | |
151 | OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/fuseki${BOARDSIZE}.c | |
152 | COMMAND ${UNCOMPRESS_FUSEKI_EXE} ${BOARDSIZE} | |
153 | ${CMAKE_CURRENT_SOURCE_DIR}/fuseki${BOARDSIZE}.dbz | |
154 | c > ${CMAKE_CURRENT_BINARY_DIR}/fuseki${BOARDSIZE}.c | |
155 | DEPENDS uncompress_fuseki | |
156 | ${CMAKE_CURRENT_SOURCE_DIR}/fuseki${BOARDSIZE}.dbz | |
157 | ) | |
158 | SET(GG_BUILT_SOURCES ${GG_BUILT_SOURCES} | |
159 | ${CMAKE_CURRENT_BINARY_DIR}/fuseki${BOARDSIZE}.c) | |
160 | ENDMACRO(RUN_UNCOMPRESS_FUSEKI) | |
161 | ||
162 | # FIXME: It's very ugly that the RUN_MKPAT macro takes two separate | |
163 | # option arguments, where one is in most cases eliminated by using "". | |
164 | # The problem with just having one option argument is that specifying | |
165 | # it as "-c -b" causes the space to be escaped into "-c\ -b". There is | |
166 | # probably some trivial workaround for someone who actually knows cmake. | |
167 | RUN_MKPAT(-X "" attpat attack.db apatterns.c) | |
168 | RUN_MKPAT("" "" defpat defense.db dpatterns.c) | |
169 | RUN_MKPAT(-b "" handipat handicap.db handipat.c) | |
170 | RUN_MKPAT(-c "" influencepat influence.db influence.c) | |
171 | RUN_MKPAT(-c -b barrierspat barriers.db barriers.c) | |
172 | RUN_MKPAT(-b "" endpat endgame.db endgame.c) | |
173 | RUN_MKPAT(-c "" conn conn.db conn.c) | |
174 | RUN_MKPAT(-b "" fusekipat fuseki.db fusekipat.c) | |
175 | RUN_MKPAT_DFA(-b aa_attackpat aa_attackpats.dtr aa_attackpats.db aa_attackpat.c) | |
176 | RUN_MKPAT_DFA(-b owl_vital_apat owl_vital_apats.dtr owl_vital_apats.db owl_vital_apat.c) | |
177 | RUN_MKPAT_DFA(-b owl_attackpat owl_attackpats.dtr owl_attackpats.db owl_attackpat.c) | |
178 | RUN_MKPAT_DFA(-b owl_defendpat owl_defendpats.dtr owl_defendpats.db owl_defendpat.c) | |
179 | RUN_UNCOMPRESS_FUSEKI(9) | |
180 | RUN_UNCOMPRESS_FUSEKI(13) | |
181 | RUN_UNCOMPRESS_FUSEKI(19) | |
182 | ||
183 | ADD_CUSTOM_COMMAND( | |
184 | OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/josekidb.c | |
185 | COMMAND ${MKPAT_EXE} -C joseki ${JOSEKI_INPUTS} | |
186 | -o ${CMAKE_CURRENT_BINARY_DIR}/josekidb.c | |
187 | DEPENDS mkpat ${JOSEKI_NAMES} | |
188 | ) | |
189 | SET(GG_BUILT_SOURCES ${GG_BUILT_SOURCES} | |
190 | ${CMAKE_CURRENT_BINARY_DIR}/josekidb.c) | |
191 | ||
192 | ADD_CUSTOM_COMMAND( | |
193 | OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/patterns.c | |
194 | COMMAND ${MKPAT_EXE} -b pat -i ${CMAKE_CURRENT_SOURCE_DIR}/patterns.db | |
195 | -i ${CMAKE_CURRENT_SOURCE_DIR}/patterns2.db | |
196 | -o ${CMAKE_CURRENT_BINARY_DIR}/patterns.c | |
197 | DEPENDS mkpat ${CMAKE_CURRENT_SOURCE_DIR}/patterns.db | |
198 | ${CMAKE_CURRENT_SOURCE_DIR}/patterns2.db | |
199 | ) | |
200 | SET(GG_BUILT_SOURCES ${GG_BUILT_SOURCES} | |
201 | ${CMAKE_CURRENT_BINARY_DIR}/patterns.c) | |
202 | ||
203 | ADD_CUSTOM_COMMAND( | |
204 | OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/eyes.c | |
205 | COMMAND ${MKEYES_EXE} < ${CMAKE_CURRENT_SOURCE_DIR}/eyes.db | |
206 | > ${CMAKE_CURRENT_BINARY_DIR}/eyes.c | |
207 | DEPENDS mkeyes ${CMAKE_CURRENT_SOURCE_DIR}/eyes.db | |
208 | ) | |
209 | SET(GG_BUILT_SOURCES ${GG_BUILT_SOURCES} ${CMAKE_CURRENT_BINARY_DIR}/eyes.c) | |
210 | ||
211 | ADD_CUSTOM_COMMAND( | |
212 | OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/mcpat.c | |
213 | COMMAND ${MKMCPAT_EXE} ${CMAKE_CURRENT_SOURCE_DIR}/mc_montegnu_classic.db | |
214 | ${CMAKE_CURRENT_SOURCE_DIR}/mc_mogo_classic.db | |
215 | ${CMAKE_CURRENT_SOURCE_DIR}/mc_uniform.db | |
216 | > ${CMAKE_CURRENT_BINARY_DIR}/mcpat.c | |
217 | DEPENDS mkmcpat ${CMAKE_CURRENT_SOURCE_DIR}/mkmcpat.c | |
218 | ${CMAKE_CURRENT_SOURCE_DIR}/mc_montegnu_classic.db | |
219 | ${CMAKE_CURRENT_SOURCE_DIR}/mc_mogo_classic.db | |
220 | ${CMAKE_CURRENT_SOURCE_DIR}/mc_uniform.db | |
221 | ) | |
222 | ||
223 | SET(GG_BUILT_SOURCES ${GG_BUILT_SOURCES} | |
224 | ${CMAKE_CURRENT_BINARY_DIR}/mcpat.c) | |
225 | ||
226 | ||
227 | ||
228 | ########### patterns library ############### | |
229 | ||
230 | SET(patterns_STAT_SRCS | |
231 | connections.c | |
232 | helpers.c | |
233 | transform.c | |
234 | ${GG_BUILT_SOURCES} | |
235 | ) | |
236 | ||
237 | ADD_LIBRARY(patterns STATIC ${patterns_STAT_SRCS}) |