CMakeLists.txt


Log

Author Commit Date CI Message
Russell Belfer 726b75d1 2013-12-02T11:32:37 Improve iconv finding for cmake * add FindIconv helper for CMake iconv detection * only default using iconv to ON for MacOS * update pkg-config generation to include iconv dependency better
Ben Straub 83e1efbf 2013-11-14T14:10:32 Update files that reference tests-clar
Vicent Martí 0df96f2b 2013-11-10T07:31:21 Merge pull request #1936 from libgit2/better-url-parsing Streamline url-parsing logic.
Vicent Marti 73291aff 2013-11-05T22:08:02 cmake: Add `USE_SSH` option
Ben Straub 2d1feaa2 2013-11-04T15:03:44 Compile HTTP parser on win32 (for url parsing)
Edward Thomson 1bfe7133 2013-10-25T13:23:46 Allow -DWINHTTP=OFF to disable WinHTTP
Carlos Martín Nieto 474c8cf8 2013-10-23T22:49:52 Really fix the pc file It turns out that variables have function scope by default. Let's really set -liconv and add a few libraries that were forgotten in the previous commit. We also need to special-case OSX, as they ship zlib but do not provide a pkg-config file for it.
Carlos Martín Nieto 1ecda61e 2013-10-23T12:58:56 Set the correct dependencies in the pkg-config file When linking statically, the including project needs to know what the current library build depends on so they can link to it. Store this information in the pkg-config file. While here, remove claims that users need to link to zlib or libcrypto.
Russell Belfer 92dac975 2013-10-08T16:35:57 Make reference lookups apply precomposeunicode Before these changes, looking up a reference would return the same precomposed or decomposed form of the reference name that was used to look it up, so on MacOS which ignores the difference between the two, a single reference could be looked up either way and git_reference_name would return the form of the name that was used to look it up! This change makes lookup always return the precomposed name if core.precomposeunicode is set regardless of which version was used to look it up. The reference iterator was already returning the precomposed form from earlier work. This also updates the CMakeLists.txt rules for enabling iconv usage because the clar tests for this code were actually not being activated properly with the old version. Finally, this moves git_repository_reset_filesystem from include/ git2/repository.h to include/git2/sys/repository.h since it is not really a function that normal library users should have to think about very often.
Russell Belfer 219d3457 2013-10-01T16:12:15 Initial iconv hookup for precomposed unicode This hooks up git_path_direach and git_path_dirload so that they will take a flag indicating if directory entry names should be tested and converted from decomposed unicode to precomposed form. This code will only come into play on the Apple platform and even then, only when certain types of filesystems are used. This involved adding a flag to these functions which involved changing a lot of places in the code. This was an opportunity to do a bit of code cleanup here and there, for example, getting rid of the git_futils_cleanupdir_r function in favor of a simple flag to git_futils_rmdir_r to not remove the top level entry. That ended up adding depth tracking during rmdir_r which led to a safety check for infinite directory recursion. Yay. This hasn't actually been tested on the Mac filesystems where the issue occurs. I still need to get test environment for that.
Jameson Miller b176eded 2013-09-19T14:52:57 Initial Implementation of progress reports during push This adds the basics of progress reporting during push. While progress for all aspects of a push operation are not reported with this change, it lays the foundation to add these later. Push progress reporting can be improved in the future - and consumers of the API should just get more accurate information at that point. The main areas where this is lacking are: 1) packbuilding progress: does not report progress during deltafication, as this involves coordinating progress from multiple threads. 2) network progress: reports progress as objects and bytes are going to be written to the subtransport (instead of as client gets confirmation that they have been received by the server) and leaves out some of the bytes that are transfered as part of the push protocol. Basically, this reports the pack bytes that are written to the subtransport. It does not report the bytes sent on the wire that are received by the server. This should be a good estimate of progress (and an improvement over no progress).
Russell Belfer 60ee53df 2013-09-03T15:14:04 Split examples CMakeLists.txt Also, this converts the examples/CMakeLists.txt from explicitly listing to just globbing for all the individual C files.
Vicent Martí c46fe0c6 2013-09-02T03:01:40 Merge pull request #1823 from kadamski/building4android Small changes enabling compiling libgit2 for Android.
Krzysztof Adamski 5c37f005 2013-09-01T18:59:42 Build all example files if BUILD_EXAMPLES used.
Krzysztof Adamski 82b2fc2c 2013-09-01T18:45:36 Create ANDROID build option CMake seems not to support Android as a target and this option lets us test this in CMakeLists.txt.
Russell Belfer 43095341 2013-08-26T14:56:31 Load SRWLock APIs at runtime This loads SRWLock APIs at runtime and in their absence (i.e. on Windows before Vista) falls back on a regular CRITICAL_SECTION that will not permit concurrent readers.
Russell Belfer eb868b1e 2013-08-22T14:34:21 Drop support for THREADSAFE on Windows XP This makes libgit2 require Windows Vista or newer if it is going to be compiled with the THREADSAFE option
Carlos Martín Nieto 5be622fb 2013-08-11T01:37:44 Test SSH in travis Set up the ssh credentials so we are able to talk to localhost and issue git commands. Move to use a script, as the command list is getting somewhat long. While here, delay installing valgrind until we need it, as it and its dependencies are by far the largest downloads and this allows us to start compiling (and failing) faster and we only incur this cost when the test suite runs successfully.
Carlos Martín Nieto d10de8bd 2013-08-12T12:07:33 CMake: finding libssh2 should be idempotent With the current code, running 'cmake .' in an already-configured directory causes the removal of ssh flags passed to the compiler, making it impossible to build with ssh support but by removing CMake's cache. Remove the check for LIBSSH2_LIBRARY and let CMake do the right thing wrt finding the library.
Russell Belfer e8242022 2013-08-05T09:59:02 Move slow tests to "stress" clar module Create a new section of clar tests "stress" that will default to being off where we can put slow tests that push the library for performance testing purposes.
Ben Straub 275d8d55 2013-07-18T09:37:59 Typo
Ben Straub e49dc687 2013-07-17T14:06:31 Switch default calling convention to cdecl.
Edward Thomson cdacd3d9 2013-07-12T16:53:00 header files show up in vs
Thomas Rast c41281ad 2013-06-19T13:36:59 CMakeLists: fix zlib linker setup b53671a (Search for zlib unconditional, 2012-12-18) changed things around to always (even on windows, that's what the subject refers to) call FIND_PACKAGE(ZLIB). However, it did not correctly handle the case where ZLIB_LIBRARY is cached, either by the user setting it manually or by an earlier search. In that case, the IF(ZLIB_FOUND) would not trigger (that variable is not cached) and we'd instead use the built-in version. 000e689 (CMake: don't try to use bundled zlib when the system's path is in the cache, 2013-05-12) tried to fix that, but it actually made the problem worse: now with ZLIB_LIBRARY cached, _neither_ of the blocks would execute, resulting in a linker error for me when trying to build such a doubly-configured setup. To fix the issue, we just trust CMake to do the right thing. If ZLIB_LIBRARY is set (either from user or cache) then the find_library in FindZLIB.cmake will use that instead of searching again. So we can unconditionally (for real this time) call FIND_PACKAGE(ZLIB), and just check its result.
nulltoken c1cf1af4 2013-06-12T21:15:58 cmake: Add option to specify the name of the binary
Vicent Marti 5a6e45cc 2013-06-12T21:14:04 Revert "cmake: Update Windows resources to reflect the optional vendor string" This reverts commit 095bfd748766966f5515bdfe64867d6a09287123.
Veeti Paananen 7a6e0281 2013-05-02T14:07:22 Build with the system's http-parser installation if available
nulltoken 095bfd74 2013-05-21T11:38:24 cmake: Update Windows resources to reflect the optional vendor string Make InternalName and OriginalFilename resources reflect the name of the compiled binary.
nulltoken ccf1a2ba 2013-05-21T11:37:13 cmake: Fix indentation
Vicent Martí e3107e0e 2013-05-16T11:35:02 Merge pull request #1558 from bmorganpa/ssh_transport SSH Transport
Carlos Martín Nieto 3bbc87d6 2013-05-14T23:09:26 CMake: allow appending a string to the library filename This helps us install multiple versions of the library side-by-side.
Carlos Martín Nieto 000e6896 2013-05-12T15:35:02 CMake: don't try to use bundled zlib when the system's path is in the cache The code surrounding zlib bundling did not take into consideration that ZLIB_LIBRARY gets cached, and assumed that FIND(ZLIB) would always set ZLIB_FOUND, which does not hold true, as this variable signifies that we have found the package and had to look at the system, as its location was not cached. Only use the bundled sources if the external zlib is neither newly-found nor cached.
Brad Morgan 00e43380 2013-05-07T14:30:35 Merge remote-tracking branch 'origin/development' into ssh_transport
Brad Morgan 7369b3c3 2013-05-07T14:26:33 Added libssh2 cmake module
Vicent Marti b641c00e 2013-05-03T17:35:50 clar: Always generate the test suite
Edward Thomson ac1d85cf 2013-04-29T11:00:05 cmake 2.6 parser bug workaround
Edward Thomson eb63fda2 2013-04-25T11:52:17 git_atomic_ssize for 64-bit atomics only on 64-bit platforms
Ben Straub ec7e240b 2013-04-09T05:07:12 Add rev-list example to makefiles
Philip Kelley 2c7f7a66 2013-03-25T17:35:36 http: Support 302 Found (arrbee did most of the work)
Vicent Marti c2ea65ee 2013-03-25T21:22:57 clar: Disable online tests. By now.
QbProg d66a7c06 2013-03-16T17:48:24 Fix for a cmake bug when using MSVC + Win64 + static libraries (see http://public.kitware.com/Bug/view.php?id=11240)
QbProg 08f32085 2013-03-16T17:38:27 Adds an option to select the CRT link mode ( static or dynamic ). This is useful when linking libgit2 statically, as the setting must match the linking program's one.
Carlos Martín Nieto 0887b580 2013-03-08T15:13:25 Use C99 stdio in mingw-w64 MinGW >= 3.14 does this automatically, but mingw-64 wants us to define it.
Vicent Martí 92ebbe99 2013-03-07T12:06:18 Merge pull request #1399 from nathan-osman/development Add SONAME build option to facilitate building for Android.
Edward Thomson b5ec5430 2013-03-04T23:52:30 optional tracing
Nathan Osman e7da9acd 2013-03-06T17:51:38 Added build option SONAME to control whether VERSION and SOVERSION were set for the git2 target, as some platforms require that this NOT be set.
Philip Kelley 69c28b75 2013-03-06T13:22:50 MSVC: Define NDEBUG to disable asserts in release builds
Philip Kelley 19be3f9e 2013-02-13T12:36:41 Improve MSVC compiler, linker flags
Vicent Martí fb60d268 2013-02-05T06:18:23 Merge pull request #1315 from nulltoken/development cMakeList: Prevent MSVCR1x0.dll dependency
nulltoken e8670d01 2013-02-05T14:32:09 cMakeList: Prevent MSVCR1x0.dll dependency Deploys the libgit2/libgit2@9041250 fix to RELWITHDEBINFO and MINSIZEREL build flavors Fix #255
Edward Thomson c27e2112 2013-01-23T17:38:00 update examples to work on windows
Sebastian Bauer b41e24a6 2013-01-04T13:02:47 Add -fPIC only if BUILD_SHARED_LIBS is ON
Sebastian Bauer 707ede86 2013-01-04T03:25:05 Compile regexp dependency when AMIGA is defined. Before it was compiled when CMake was actually run on AmigaOS.
Sebastian Bauer c57c4af3 2012-12-29T23:27:14 Disable SSL when compiling for AmigaOS for now.
Edward Thomson 8f09f464 2013-01-08T16:54:44 remove ppc sha1 asm
Edward Thomson d335e73a 2013-01-08T16:37:19 keep comments at < 80 chars
nulltoken 09556895 2013-01-06T14:40:32 travis: Include the online suite when running against Travis
Vicent Marti 4236164a 2013-01-03T02:37:28 Prototypes warning goes away
Vicent Marti 2e6f06a8 2013-01-03T02:34:45 ...and add Clar raw
Vicent Marti afb18116 2013-01-03T01:04:18 /deal with it
Vicent Marti 39444bea 2013-01-03T01:01:03 ...fine
Vicent Marti ad27838b 2013-01-03T00:58:46 Proper submodule dependency
Vicent Marti 6443eaf2 2013-01-03T00:50:29 Disable Network suite by default
Vicent Marti 39cd0177 2013-01-02T22:38:10 This is a better name
Vicent Marti a44f2e9e 2013-01-02T22:26:34 Try it like this...
Vicent Marti e229c048 2013-01-02T21:25:32 Fuck you CMake
Vicent Marti 0df41675 2013-01-02T21:22:19 Submodule checkout
Vicent Marti a368fd0f 2013-01-02T20:08:49 Checkout test
Vicent Marti 5c2d3f6d 2013-01-02T04:17:31 Add build dependency for clar. Also, fuck you CMake. Fuck you.
Vicent Marti b0a45829 2012-12-19T01:10:13 Bump the Clar submodule
Vicent Marti 156cfec0 2012-12-19T00:12:26 Cleanup Clar to make it SIMPLER
Sascha Cunz 523a3ae5 2012-12-18T20:40:57 MSVC: Don't list all source files in an endless list Instead tell MSVC to group the source files by directory.
Sascha Cunz 94243295 2012-12-18T19:51:31 DRY: Add function that adds os-specific libraries to our targets
Sascha Cunz 19a766a2 2012-12-18T19:32:31 Collect configuration options at the top of the file - Also document the -DSTDCALL even better.
Sascha Cunz 521479b1 2012-12-18T19:18:13 DRY: Don't repeat globs for libgit2's own source files
Sascha Cunz c5309eb2 2012-12-18T19:07:59 Remove special case source globs for Solaris With the src/compat/*.c glob removed, there is no longer a difference to the default globs we use for the IF( UNIX ) case.
Sascha Cunz 49b63008 2012-12-18T19:07:08 Remove src/compat/*.c from source globs This directory doesn't exist.
Sascha Cunz b53671ae 2012-12-18T19:03:29 Search for zlib unconditional Up to now, on windows we don't even bother to look if the user has a zlib available somwhere. In almost all larger commercial projects i've participated in, it was not at all uncommon to have such a dependency somewhere in the source tree and use it whereever required. Searching for it, even if it's unlikely to be present, allows for such a scenario (i.e. by prefilling the CMake-Cache).
Sascha Cunz 3d007f4f 2012-12-18T18:55:23 DRY: Scan for regex.c only in one place
Sascha Cunz 8d457891 2012-12-18T18:52:49 Only add deps/http-parser to include-dirs if required
Vicent Marti cfbe4be3 2012-11-17T19:54:47 More external API cleanup Conflicts: src/branch.c tests-clar/refs/branches/create.c
Russell Belfer a9069f61 2012-11-19T12:11:01 Merge pull request #1086 from scunz/vs_warning_level VS-Build: Append C_FLAGS to the end of the already given ones.
Sascha Cunz 4a03913c 2012-11-19T04:48:40 VS-Build: Disable /W4 parameter, as it is not picked up anyway My other PR revealed, that the /W4 parameter, we give to MSVC is ignored because cmake set CMAKE_C_FLAGS already to /W3 and we overwrite it. The command line tools gave me a D9025 warning for this on every file and looking into the project properties page on MSVC 2008 tells, that it has the warning level set to /W3. However, the warnings introduced by /W4 are far to useless for having them enabled. So just disable them.
Sascha Cunz 26d9e317 2012-11-19T04:40:58 Don't use precompiled headers for command-line based VC builds. The reason, why libgit2 currently cannot support compiling via the command-line tools cl/nmake from WinSDK and/or Microsoft Visual Studio, seems to be a missing dependency on the generated precompiled header file. The Visual Studio IDE automatically inserts this dependency when it sees the right combination of "/Y" parameters. This patch allows to compile using command line tools by disabling precompiled headers for NON-IDE builds.
Edward Thomson d6fb0924 2012-11-05T12:37:15 Win32 CryptoAPI and CNG support for SHA1
Russell Belfer dbd6850d 2012-11-01T10:57:14 Hide deprecations on MacOS Why Apple, why?
Paul Thompson 88149fae 2012-10-28T10:21:28 Leave CMAKE_BUILD_TYPE absent on those generators which don't use it.
Paul Thompson 4a3be934 2012-10-28T09:56:18 Removed overwrite of CMAKE_C_FLAGS_DEBUG. - No overwriting allows control from cmake cache or cmdline - -g is already the CMake default - -O0 is already gcc's default
Paul Thompson 54c56d3e 2012-10-28T09:42:54 Remove "-O2 -g" from default CMAKE_C_FLAGS. - Those are the RelWithDebInfo flags. - They should be controlled from CMAKE_BUILD_TYPE
Paul Thompson 2df7c944 2012-10-28T09:25:43 Remove duplicate CMAKE_C_FLAGS inside CMAKE_C_FLAGS_DEBUG. - For Debug builds, CMake uses concatenated CMAKE_C_FLAGS and CMAKE_C_FLAGS_DEBUG - This reverts commit 291f7122927d2cc170dc63c378a08fa78515d987.
Edward Thomson 94155e2f 2012-10-25T14:51:08 remove /ZM1000 from msvc builds
Vicent Martí 81e7b10a 2012-10-23T13:43:28 Merge pull request #1012 from carlosmn/libcrypto-sha Use libcrypto's SHA-1 implementation when linking to it
Carlos Martín Nieto 7205a4d9 2012-10-23T19:30:04 Use libcrypto's SHA-1 implementation when linking to it libcryto's SHA-1 implementation is measurably better than the one that ships with the library. If we link to it for HTTPS support already, use that implementation instead. Testing on a ~600MB of the linux repository, this reduces indexing time by 40% and removes the hashing from the top spot in the perf output.
Veeti Paananen 88e0fc05 2012-10-20T02:59:40 Remove backwards compatibility for INSTALL_LIB
Veeti Paananen 291f7122 2012-10-19T23:34:00 Let environment CFLAGS override the debug flags
Veeti Paananen 9795a40f 2012-10-19T17:33:13 Use standard CMake variable names for installation paths Rename INSTALL_INC and INSTALL_BIN to INCLUDE_INSTALL_DIR and BIN_INSTALL_DIR, which are more commonly used. This is also consistent with the variable for the library path which is already LIB_INSTALL_DIR.
Carlos Martín Nieto a75770fe 2012-10-10T14:57:05 tests: add a test for tag autofollow behaviour Also tell ctest and valgrind to run libgit2_clar with '-iall' so we run the network tests in travis.
Carlos Martín Nieto 3ce22c74 2012-08-26T19:22:34 http: use WinHTTP on Windows Wondows has its own HTTP library. Use that one when possible instead of our own. As we don't depend on them anymore, remove the http-parser library from the Windows build, as well as the search for OpenSSL.
Ignacio Casal Quinteiro b3237ac3 2012-07-13T17:13:35 Add support for the more standard LIB_INSTALL_DIR variable
Chris Young abd6d52c 2012-06-20T19:27:17 revert defaults