Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch cmake Excluding Merge-Ins
This is equivalent to a diff from 1128509646 to d167b79e66
2011-06-17
| ||
13:37 | Fix the temporary filename generator so that it does not get stuck in a loop. Ticket [006e1df642d6246a03]. check-in: d3a1663a09 user: drh tags: trunk | |
2011-06-16
| ||
23:14 | 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. Closed-Leaf check-in: d167b79e66 user: drh tags: cmake | |
23:12 | Fix an issue with makeheaders that causes problems for windows when full pathnames are use with a colon in the device name. check-in: 1128509646 user: drh tags: trunk | |
19:51 | Updates to the VC++ makefile. check-in: 82d741db3e user: drh tags: trunk | |
Added CMakeLists.txt.
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)