| 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}) |