Fossil SCM
A CMake file from Thomas Schnurrenberger. Saved for reference. After some experimentation with cmake, the thinking is we will probably go in a different direction.
Commit
d167b79e66d517d21df8303f6899ed42c6b1bfdd
Parent
11285096466c088…
1 file changed
+215
+215
| --- a/CMakeLists.txt | ||
| +++ b/CMakeLists.txt | ||
| @@ -0,0 +1,215 @@ | ||
| 1 | +PROJECT(Fossil C) | |
| 2 | + | |
| 3 | +CMAKE_MINIMUM_REQUIRED(VERSION 2.8) | |
| 4 | + | |
| 5 | +# Build options. | |
| 6 | +OPTION(FOSSIL_BUILD_STATIC "Build Fossil static" TRUE) | |
| 7 | +OPTION(FOSSIL_ENABLE_SSL "Enable SSL support" FALSE) | |
| 8 | + | |
| 9 | +# Include some macros. | |
| 10 | +INCLUDE(CheckIncludeFile) | |
| 11 | + | |
| 12 | +# Source files which gets processed by the translate program. | |
| 13 | +SET(TRANS_SRCS | |
| 14 | + add allrepo attach bag bisect blob branch browse captcha cgi checkin | |
| 15 | + checkout clearsign clone comformat configure content db delta deltacmd | |
| 16 | + descendants diff diffcmd doc encode event export file finfo glob graph gzip | |
| 17 | + http http_socket http_transport import info leaf login main manifest md5 | |
| 18 | + merge merge3 name path pivot popen pqueue printf rebuild report rss schema | |
| 19 | + search setup sha1 shun skins sqlcmd stash stat style sync tag tar th_main | |
| 20 | + timeline tkt tktsetup undo update url user verify vfile wiki wikiformat | |
| 21 | + winhttp xfer zip http_ssl | |
| 22 | +) | |
| 23 | + | |
| 24 | +# Additional source files. | |
| 25 | +SET(OTHER_SRCS | |
| 26 | + src/sqlite3.c src/shell.c src/th.c src/th_lang.c | |
| 27 | +) | |
| 28 | + | |
| 29 | +# Add the resource file on windows to the source files. | |
| 30 | +IF(WIN32) | |
| 31 | + SET(OTHER_SRCS ${OTHER_SRCS} win/fossil.rc) | |
| 32 | +ENDIF(WIN32) | |
| 33 | + | |
| 34 | +# Set compile definitions for src/shell.c. | |
| 35 | +SET(SHELL_COMP_DEFS | |
| 36 | + main=sqlite3_shell | |
| 37 | + SQLITE_OMIT_LOAD_EXTENSION=1 | |
| 38 | +) | |
| 39 | +SET_SOURCE_FILES_PROPERTIES(src/shell.c | |
| 40 | + PROPERTIES COMPILE_DEFINITIONS "${SHELL_COMP_DEFS}" | |
| 41 | +) | |
| 42 | + | |
| 43 | +# Set compile definitions for src/sqlite.c. | |
| 44 | +SET(SQLITE3_COMP_DEFS | |
| 45 | + SQLITE_OMIT_LOAD_EXTENSION=1 | |
| 46 | + SQLITE_THREADSAFE=0 | |
| 47 | + SQLITE_DEFAULT_FILE_FORMAT=4 | |
| 48 | + SQLITE_ENABLE_STAT2 | |
| 49 | + SQLITE_ENABLE_LOCKING_STYLE=0 | |
| 50 | + localtime=fossil_localtime | |
| 51 | +) | |
| 52 | +SET_SOURCE_FILES_PROPERTIES(src/sqlite3.c | |
| 53 | + PROPERTIES COMPILE_DEFINITIONS "${SQLITE3_COMP_DEFS}" | |
| 54 | +) | |
| 55 | + | |
| 56 | +# Build the makeheaders program. | |
| 57 | +ADD_EXECUTABLE(makeheaders src/makeheaders.c) | |
| 58 | +GET_TARGET_PROPERTY(MAKEHEADERS_LOC makeheaders LOCATION) | |
| 59 | + | |
| 60 | +# Build the translate program. | |
| 61 | +ADD_EXECUTABLE(translate src/translate.c) | |
| 62 | +GET_TARGET_PROPERTY(TRANSLATE_LOC translate LOCATION) | |
| 63 | + | |
| 64 | +# Build the mkindex program. | |
| 65 | +ADD_EXECUTABLE(mkindex src/mkindex.c) | |
| 66 | +GET_TARGET_PROPERTY(MKINDEX_LOC mkindex LOCATION) | |
| 67 | + | |
| 68 | +# Build the version program. | |
| 69 | +ADD_EXECUTABLE(version win/version.c) | |
| 70 | +GET_TARGET_PROPERTY(VERSION_LOC version LOCATION) | |
| 71 | + | |
| 72 | +# Custom command to build the VERSION.h include file. | |
| 73 | +ADD_CUSTOM_COMMAND( | |
| 74 | + OUTPUT ${PROJECT_BINARY_DIR}/VERSION.h | |
| 75 | + DEPENDS version | |
| 76 | + ${PROJECT_SOURCE_DIR}/manifest.uuid | |
| 77 | + ${PROJECT_SOURCE_DIR}/manifest | |
| 78 | + COMMAND ${VERSION_LOC} | |
| 79 | + ARGS ${PROJECT_SOURCE_DIR}/manifest.uuid | |
| 80 | + ${PROJECT_SOURCE_DIR}/manifest | |
| 81 | + > ${PROJECT_BINARY_DIR}/VERSION.h | |
| 82 | + COMMENT "Generating VERSION.h ..." | |
| 83 | +) | |
| 84 | + | |
| 85 | +# Custom commands to build the translated sources. | |
| 86 | +FOREACH(SRC ${TRANS_SRCS}) | |
| 87 | + | |
| 88 | + ADD_CUSTOM_COMMAND( | |
| 89 | + OUTPUT ${PROJECT_BINARY_DIR}/${SRC}_.c | |
| 90 | + DEPENDS translate | |
| 91 | + ${PROJECT_SOURCE_DIR}/src/${SRC}.c | |
| 92 | + COMMAND ${TRANSLATE_LOC} | |
| 93 | + ARGS ${PROJECT_SOURCE_DIR}/src/${SRC}.c | |
| 94 | + > ${PROJECT_BINARY_DIR}/${SRC}_.c | |
| 95 | + COMMENT "Translating src/${SRC}.c ..." | |
| 96 | + ) | |
| 97 | + | |
| 98 | + # Build a list of all the results. | |
| 99 | + SET(TRANS_SRC ${TRANS_SRC} ${PROJECT_BINARY_DIR}/${SRC}_.c) | |
| 100 | + | |
| 101 | +ENDFOREACH(SRC) | |
| 102 | + | |
| 103 | +# Custom command to build page_index.h. | |
| 104 | +ADD_CUSTOM_COMMAND( | |
| 105 | + OUTPUT ${PROJECT_BINARY_DIR}/page_index.h | |
| 106 | + DEPENDS mkindex | |
| 107 | + ${TRANS_SRC} | |
| 108 | + COMMAND ${MKINDEX_LOC} | |
| 109 | + ARGS ${TRANS_SRC} | |
| 110 | + > ${PROJECT_BINARY_DIR}/page_index.h | |
| 111 | + COMMENT "Generating page_index.h ..." | |
| 112 | +) | |
| 113 | +ADD_CUSTOM_TARGET(page_index DEPENDS ${PROJECT_BINARY_DIR}/page_index.h) | |
| 114 | + | |
| 115 | +# Create an input file for the makeheaders program. | |
| 116 | +FILE(WRITE ${PROJECT_BINARY_DIR}/mkhdr.dat | |
| 117 | +"# Warning: this file is automatically generated by CMake. | |
| 118 | +${PROJECT_SOURCE_DIR}/src/sqlite3.h | |
| 119 | +${PROJECT_SOURCE_DIR}/src/th.h | |
| 120 | +${PROJECT_BINARY_DIR}/VERSION.h\n" | |
| 121 | +) | |
| 122 | +FOREACH(SRC ${TRANS_SRCS}) | |
| 123 | + FILE(APPEND ${PROJECT_BINARY_DIR}/mkhdr.dat | |
| 124 | + "${PROJECT_BINARY_DIR}/${SRC}_.c:${PROJECT_BINARY_DIR}/${SRC}.h\n" | |
| 125 | + ) | |
| 126 | + # Build a list of all the generated header files. | |
| 127 | + SET(GEN_HDRS ${GEN_HDRS} ${PROJECT_BINARY_DIR}/${SRC}.h) | |
| 128 | +ENDFOREACH(SRC) | |
| 129 | + | |
| 130 | +# Custom commands to build the header files. | |
| 131 | +ADD_CUSTOM_COMMAND( | |
| 132 | + OUTPUT ${PROJECT_BINARY_DIR}/headers ${GEN_HDRS} | |
| 133 | + DEPENDS makeheaders | |
| 134 | + ${PROJECT_SOURCE_DIR}/src/sqlite3.h | |
| 135 | + ${PROJECT_SOURCE_DIR}/src/th.h | |
| 136 | + ${PROJECT_BINARY_DIR}/VERSION.h | |
| 137 | + ${TRANS_SRC} | |
| 138 | + COMMAND ${MAKEHEADERS_LOC} | |
| 139 | + ARGS -f mkhdr.dat | |
| 140 | + COMMAND ${CMAKE_COMMAND} | |
| 141 | + ARGS -E echo Headers generated > ${PROJECT_BINARY_DIR}/headers | |
| 142 | + COMMENT "Generating header files..." | |
| 143 | +) | |
| 144 | +ADD_CUSTOM_TARGET(hdr_files DEPENDS ${PROJECT_BINARY_DIR}/headers) | |
| 145 | + | |
| 146 | +# Make sure that the CMake output directory and the source file directory | |
| 147 | +# gets searched for include files. | |
| 148 | +SET(FOSSIL_INCL_DIRS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/src) | |
| 149 | + | |
| 150 | +# Disable internationalization. | |
| 151 | +SET(FOSSIL_COMP_DEFS FOSSIL_I18N=0) | |
| 152 | + | |
| 153 | +# Fossil requires the Zlib library. | |
| 154 | +CHECK_INCLUDE_FILE(zlib.h ZLIB_INTRINSIC) | |
| 155 | +IF(ZLIB_INTRINSIC) | |
| 156 | + SET(FOSSIL_LINK_LIBS ${FOSSIL_LINK_LIBS} z) | |
| 157 | +ELSE(ZLIB_INTRINSIC) | |
| 158 | + FIND_PACKAGE(ZLIB REQUIRED) | |
| 159 | + IF(ZLIB_FOUND) | |
| 160 | + SET(FOSSIL_LINK_LIBS ${FOSSIL_LINK_LIBS} ${ZLIB_LIBRARIES}) | |
| 161 | + SET(FOSSIL_INCL_DIRS ${FOSSIL_INCL_DIRS} ${ZLIB_INCLUDE_DIRS}) | |
| 162 | + ENDIF(ZLIB_FOUND) | |
| 163 | +ENDIF(ZLIB_INTRINSIC) | |
| 164 | + | |
| 165 | +IF(FOSSIL_ENABLE_SSL) | |
| 166 | + CHECK_INCLUDE_FILE(openssl/ssl.h OPENSSL_INTRINSIC) | |
| 167 | + IF(OPENSSL_INTRINSIC) | |
| 168 | + SET(FOSSIL_LINK_LIBS ${FOSSIL_LINK_LIBS} ssl crypto) | |
| 169 | + ELSE(OPENSSL_INTRINSIC) | |
| 170 | + FIND_PACKAGE(OpenSSL REQUIRED) | |
| 171 | + IF(OPENSSL_FOUND) | |
| 172 | + SET(FOSSIL_LINK_LIBS ${FOSSIL_LINK_LIBS} ${OPENSSL_LIBRARIES}) | |
| 173 | + SET(FOSSIL_INCL_DIRS ${FOSSIL_INCL_DIRS} ${OPENSSL_INCLUDE_DIR}) | |
| 174 | + ENDIF(OPENSSL_FOUND) | |
| 175 | + ENDIF(OPENSSL_INTRINSIC) | |
| 176 | + SET(FOSSIL_COMP_DEFS ${FOSSIL_COMP_DEFS} FOSSIL_ENABLE_SSL=1) | |
| 177 | +ENDIF(FOSSIL_ENABLE_SSL) | |
| 178 | + | |
| 179 | +# On Windows, Fossil requires the socket library. | |
| 180 | +IF(WIN32) | |
| 181 | + SET(FOSSIL_LINK_LIBS ${FOSSIL_LINK_LIBS} ws2_32) | |
| 182 | +ENDIF(WIN32) | |
| 183 | + | |
| 184 | +# Set the include diretories. | |
| 185 | +INCLUDE_DIRECTORIES(BEFORE ${FOSSIL_INCL_DIRS}) | |
| 186 | + | |
| 187 | +# Build the Fossil program. | |
| 188 | +ADD_EXECUTABLE(fossil ${TRANS_SRC} ${OTHER_SRCS}) | |
| 189 | + | |
| 190 | +# Fossil depends on the generated header files. | |
| 191 | +ADD_DEPENDENCIES(fossil hdr_files page_index) | |
| 192 | + | |
| 193 | +# Set flags for building fossil static. | |
| 194 | +IF(FOSSIL_BUILD_STATIC) | |
| 195 | + SET(FOSSIL_LINK_FLAGS ${FOSSIL_LINK_FLAGS} -static) | |
| 196 | +ENDIF(FOSSIL_BUILD_STATIC) | |
| 197 | + | |
| 198 | +# Set the additional link flags for the fossil target. | |
| 199 | +IF(DEFINED FOSSIL_LINK_FLAGS) | |
| 200 | + SET_TARGET_PROPERTIES(fossil PROPERTIES | |
| 201 | + LINK_FLAGS ${FOSSIL_LINK_FLAGS} | |
| 202 | + ) | |
| 203 | +ENDIF(DEFINED FOSSIL_LINK_FLAGS) | |
| 204 | + | |
| 205 | +# Set the compile definitions for the fossil target. | |
| 206 | +IF(DEFINED FOSSIL_COMP_DEFS) | |
| 207 | + SET_TARGET_PROPERTIES(fossil PROPERTIES | |
| 208 | + COMPILE_DEFINITIONS "${FOSSIL_COMP_DEFS}" | |
| 209 | + ) | |
| 210 | +ENDIF(DEFINED FOSSIL_COMP_DEFS) | |
| 211 | + | |
| 212 | +# Set the additional link libraries for the fossil target. | |
| 213 | +IF(DEFINED FOSSIL_LINK_LIBS) | |
| 214 | + TARGET_LINK_LIBRARIES(fossil ${FOSSIL_LINK_LIBS}) | |
| 215 | +ENDIF(DEFINED FOSSIL_LINK_LIBS) |
| --- a/CMakeLists.txt | |
| +++ b/CMakeLists.txt | |
| @@ -0,0 +1,215 @@ | |
| --- a/CMakeLists.txt | |
| +++ b/CMakeLists.txt | |
| @@ -0,0 +1,215 @@ | |
| 1 | PROJECT(Fossil C) |
| 2 | |
| 3 | CMAKE_MINIMUM_REQUIRED(VERSION 2.8) |
| 4 | |
| 5 | # Build options. |
| 6 | OPTION(FOSSIL_BUILD_STATIC "Build Fossil static" TRUE) |
| 7 | OPTION(FOSSIL_ENABLE_SSL "Enable SSL support" FALSE) |
| 8 | |
| 9 | # Include some macros. |
| 10 | INCLUDE(CheckIncludeFile) |
| 11 | |
| 12 | # Source files which gets processed by the translate program. |
| 13 | SET(TRANS_SRCS |
| 14 | add allrepo attach bag bisect blob branch browse captcha cgi checkin |
| 15 | checkout clearsign clone comformat configure content db delta deltacmd |
| 16 | descendants diff diffcmd doc encode event export file finfo glob graph gzip |
| 17 | http http_socket http_transport import info leaf login main manifest md5 |
| 18 | merge merge3 name path pivot popen pqueue printf rebuild report rss schema |
| 19 | search setup sha1 shun skins sqlcmd stash stat style sync tag tar th_main |
| 20 | timeline tkt tktsetup undo update url user verify vfile wiki wikiformat |
| 21 | winhttp xfer zip http_ssl |
| 22 | ) |
| 23 | |
| 24 | # Additional source files. |
| 25 | SET(OTHER_SRCS |
| 26 | src/sqlite3.c src/shell.c src/th.c src/th_lang.c |
| 27 | ) |
| 28 | |
| 29 | # Add the resource file on windows to the source files. |
| 30 | IF(WIN32) |
| 31 | SET(OTHER_SRCS ${OTHER_SRCS} win/fossil.rc) |
| 32 | ENDIF(WIN32) |
| 33 | |
| 34 | # Set compile definitions for src/shell.c. |
| 35 | SET(SHELL_COMP_DEFS |
| 36 | main=sqlite3_shell |
| 37 | SQLITE_OMIT_LOAD_EXTENSION=1 |
| 38 | ) |
| 39 | SET_SOURCE_FILES_PROPERTIES(src/shell.c |
| 40 | PROPERTIES COMPILE_DEFINITIONS "${SHELL_COMP_DEFS}" |
| 41 | ) |
| 42 | |
| 43 | # Set compile definitions for src/sqlite.c. |
| 44 | SET(SQLITE3_COMP_DEFS |
| 45 | SQLITE_OMIT_LOAD_EXTENSION=1 |
| 46 | SQLITE_THREADSAFE=0 |
| 47 | SQLITE_DEFAULT_FILE_FORMAT=4 |
| 48 | SQLITE_ENABLE_STAT2 |
| 49 | SQLITE_ENABLE_LOCKING_STYLE=0 |
| 50 | localtime=fossil_localtime |
| 51 | ) |
| 52 | SET_SOURCE_FILES_PROPERTIES(src/sqlite3.c |
| 53 | PROPERTIES COMPILE_DEFINITIONS "${SQLITE3_COMP_DEFS}" |
| 54 | ) |
| 55 | |
| 56 | # Build the makeheaders program. |
| 57 | ADD_EXECUTABLE(makeheaders src/makeheaders.c) |
| 58 | GET_TARGET_PROPERTY(MAKEHEADERS_LOC makeheaders LOCATION) |
| 59 | |
| 60 | # Build the translate program. |
| 61 | ADD_EXECUTABLE(translate src/translate.c) |
| 62 | GET_TARGET_PROPERTY(TRANSLATE_LOC translate LOCATION) |
| 63 | |
| 64 | # Build the mkindex program. |
| 65 | ADD_EXECUTABLE(mkindex src/mkindex.c) |
| 66 | GET_TARGET_PROPERTY(MKINDEX_LOC mkindex LOCATION) |
| 67 | |
| 68 | # Build the version program. |
| 69 | ADD_EXECUTABLE(version win/version.c) |
| 70 | GET_TARGET_PROPERTY(VERSION_LOC version LOCATION) |
| 71 | |
| 72 | # Custom command to build the VERSION.h include file. |
| 73 | ADD_CUSTOM_COMMAND( |
| 74 | OUTPUT ${PROJECT_BINARY_DIR}/VERSION.h |
| 75 | DEPENDS version |
| 76 | ${PROJECT_SOURCE_DIR}/manifest.uuid |
| 77 | ${PROJECT_SOURCE_DIR}/manifest |
| 78 | COMMAND ${VERSION_LOC} |
| 79 | ARGS ${PROJECT_SOURCE_DIR}/manifest.uuid |
| 80 | ${PROJECT_SOURCE_DIR}/manifest |
| 81 | > ${PROJECT_BINARY_DIR}/VERSION.h |
| 82 | COMMENT "Generating VERSION.h ..." |
| 83 | ) |
| 84 | |
| 85 | # Custom commands to build the translated sources. |
| 86 | FOREACH(SRC ${TRANS_SRCS}) |
| 87 | |
| 88 | ADD_CUSTOM_COMMAND( |
| 89 | OUTPUT ${PROJECT_BINARY_DIR}/${SRC}_.c |
| 90 | DEPENDS translate |
| 91 | ${PROJECT_SOURCE_DIR}/src/${SRC}.c |
| 92 | COMMAND ${TRANSLATE_LOC} |
| 93 | ARGS ${PROJECT_SOURCE_DIR}/src/${SRC}.c |
| 94 | > ${PROJECT_BINARY_DIR}/${SRC}_.c |
| 95 | COMMENT "Translating src/${SRC}.c ..." |
| 96 | ) |
| 97 | |
| 98 | # Build a list of all the results. |
| 99 | SET(TRANS_SRC ${TRANS_SRC} ${PROJECT_BINARY_DIR}/${SRC}_.c) |
| 100 | |
| 101 | ENDFOREACH(SRC) |
| 102 | |
| 103 | # Custom command to build page_index.h. |
| 104 | ADD_CUSTOM_COMMAND( |
| 105 | OUTPUT ${PROJECT_BINARY_DIR}/page_index.h |
| 106 | DEPENDS mkindex |
| 107 | ${TRANS_SRC} |
| 108 | COMMAND ${MKINDEX_LOC} |
| 109 | ARGS ${TRANS_SRC} |
| 110 | > ${PROJECT_BINARY_DIR}/page_index.h |
| 111 | COMMENT "Generating page_index.h ..." |
| 112 | ) |
| 113 | ADD_CUSTOM_TARGET(page_index DEPENDS ${PROJECT_BINARY_DIR}/page_index.h) |
| 114 | |
| 115 | # Create an input file for the makeheaders program. |
| 116 | FILE(WRITE ${PROJECT_BINARY_DIR}/mkhdr.dat |
| 117 | "# Warning: this file is automatically generated by CMake. |
| 118 | ${PROJECT_SOURCE_DIR}/src/sqlite3.h |
| 119 | ${PROJECT_SOURCE_DIR}/src/th.h |
| 120 | ${PROJECT_BINARY_DIR}/VERSION.h\n" |
| 121 | ) |
| 122 | FOREACH(SRC ${TRANS_SRCS}) |
| 123 | FILE(APPEND ${PROJECT_BINARY_DIR}/mkhdr.dat |
| 124 | "${PROJECT_BINARY_DIR}/${SRC}_.c:${PROJECT_BINARY_DIR}/${SRC}.h\n" |
| 125 | ) |
| 126 | # Build a list of all the generated header files. |
| 127 | SET(GEN_HDRS ${GEN_HDRS} ${PROJECT_BINARY_DIR}/${SRC}.h) |
| 128 | ENDFOREACH(SRC) |
| 129 | |
| 130 | # Custom commands to build the header files. |
| 131 | ADD_CUSTOM_COMMAND( |
| 132 | OUTPUT ${PROJECT_BINARY_DIR}/headers ${GEN_HDRS} |
| 133 | DEPENDS makeheaders |
| 134 | ${PROJECT_SOURCE_DIR}/src/sqlite3.h |
| 135 | ${PROJECT_SOURCE_DIR}/src/th.h |
| 136 | ${PROJECT_BINARY_DIR}/VERSION.h |
| 137 | ${TRANS_SRC} |
| 138 | COMMAND ${MAKEHEADERS_LOC} |
| 139 | ARGS -f mkhdr.dat |
| 140 | COMMAND ${CMAKE_COMMAND} |
| 141 | ARGS -E echo Headers generated > ${PROJECT_BINARY_DIR}/headers |
| 142 | COMMENT "Generating header files..." |
| 143 | ) |
| 144 | ADD_CUSTOM_TARGET(hdr_files DEPENDS ${PROJECT_BINARY_DIR}/headers) |
| 145 | |
| 146 | # Make sure that the CMake output directory and the source file directory |
| 147 | # gets searched for include files. |
| 148 | SET(FOSSIL_INCL_DIRS ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/src) |
| 149 | |
| 150 | # Disable internationalization. |
| 151 | SET(FOSSIL_COMP_DEFS FOSSIL_I18N=0) |
| 152 | |
| 153 | # Fossil requires the Zlib library. |
| 154 | CHECK_INCLUDE_FILE(zlib.h ZLIB_INTRINSIC) |
| 155 | IF(ZLIB_INTRINSIC) |
| 156 | SET(FOSSIL_LINK_LIBS ${FOSSIL_LINK_LIBS} z) |
| 157 | ELSE(ZLIB_INTRINSIC) |
| 158 | FIND_PACKAGE(ZLIB REQUIRED) |
| 159 | IF(ZLIB_FOUND) |
| 160 | SET(FOSSIL_LINK_LIBS ${FOSSIL_LINK_LIBS} ${ZLIB_LIBRARIES}) |
| 161 | SET(FOSSIL_INCL_DIRS ${FOSSIL_INCL_DIRS} ${ZLIB_INCLUDE_DIRS}) |
| 162 | ENDIF(ZLIB_FOUND) |
| 163 | ENDIF(ZLIB_INTRINSIC) |
| 164 | |
| 165 | IF(FOSSIL_ENABLE_SSL) |
| 166 | CHECK_INCLUDE_FILE(openssl/ssl.h OPENSSL_INTRINSIC) |
| 167 | IF(OPENSSL_INTRINSIC) |
| 168 | SET(FOSSIL_LINK_LIBS ${FOSSIL_LINK_LIBS} ssl crypto) |
| 169 | ELSE(OPENSSL_INTRINSIC) |
| 170 | FIND_PACKAGE(OpenSSL REQUIRED) |
| 171 | IF(OPENSSL_FOUND) |
| 172 | SET(FOSSIL_LINK_LIBS ${FOSSIL_LINK_LIBS} ${OPENSSL_LIBRARIES}) |
| 173 | SET(FOSSIL_INCL_DIRS ${FOSSIL_INCL_DIRS} ${OPENSSL_INCLUDE_DIR}) |
| 174 | ENDIF(OPENSSL_FOUND) |
| 175 | ENDIF(OPENSSL_INTRINSIC) |
| 176 | SET(FOSSIL_COMP_DEFS ${FOSSIL_COMP_DEFS} FOSSIL_ENABLE_SSL=1) |
| 177 | ENDIF(FOSSIL_ENABLE_SSL) |
| 178 | |
| 179 | # On Windows, Fossil requires the socket library. |
| 180 | IF(WIN32) |
| 181 | SET(FOSSIL_LINK_LIBS ${FOSSIL_LINK_LIBS} ws2_32) |
| 182 | ENDIF(WIN32) |
| 183 | |
| 184 | # Set the include diretories. |
| 185 | INCLUDE_DIRECTORIES(BEFORE ${FOSSIL_INCL_DIRS}) |
| 186 | |
| 187 | # Build the Fossil program. |
| 188 | ADD_EXECUTABLE(fossil ${TRANS_SRC} ${OTHER_SRCS}) |
| 189 | |
| 190 | # Fossil depends on the generated header files. |
| 191 | ADD_DEPENDENCIES(fossil hdr_files page_index) |
| 192 | |
| 193 | # Set flags for building fossil static. |
| 194 | IF(FOSSIL_BUILD_STATIC) |
| 195 | SET(FOSSIL_LINK_FLAGS ${FOSSIL_LINK_FLAGS} -static) |
| 196 | ENDIF(FOSSIL_BUILD_STATIC) |
| 197 | |
| 198 | # Set the additional link flags for the fossil target. |
| 199 | IF(DEFINED FOSSIL_LINK_FLAGS) |
| 200 | SET_TARGET_PROPERTIES(fossil PROPERTIES |
| 201 | LINK_FLAGS ${FOSSIL_LINK_FLAGS} |
| 202 | ) |
| 203 | ENDIF(DEFINED FOSSIL_LINK_FLAGS) |
| 204 | |
| 205 | # Set the compile definitions for the fossil target. |
| 206 | IF(DEFINED FOSSIL_COMP_DEFS) |
| 207 | SET_TARGET_PROPERTIES(fossil PROPERTIES |
| 208 | COMPILE_DEFINITIONS "${FOSSIL_COMP_DEFS}" |
| 209 | ) |
| 210 | ENDIF(DEFINED FOSSIL_COMP_DEFS) |
| 211 | |
| 212 | # Set the additional link libraries for the fossil target. |
| 213 | IF(DEFINED FOSSIL_LINK_LIBS) |
| 214 | TARGET_LINK_LIBRARIES(fossil ${FOSSIL_LINK_LIBS}) |
| 215 | ENDIF(DEFINED FOSSIL_LINK_LIBS) |