From 1a7b52dcc9bac87ab58417e6df17d7e8bd352f06 Mon Sep 17 00:00:00 2001 From: Vicent Marti Date: Mon, 13 Jun 2011 15:34:34 +0200 Subject: [PATCH] build: Drop waf support Goodbye Waf. It's been a long ride. --- CMakeLists.txt | 30 +++--- waf | Bin 76176 -> 0 bytes wscript | 268 ------------------------------------------------- 3 files changed, 13 insertions(+), 285 deletions(-) delete mode 100755 waf delete mode 100644 wscript diff --git a/CMakeLists.txt b/CMakeLists.txt index ace5a796b..01911fde6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,13 +38,13 @@ SET(INSTALL_LIB lib CACHE PATH "Where to install libraries to.") SET(INSTALL_INC include CACHE PATH "Where to install headers to.") # Build options -OPTION (BUILD_SHARED_LIBS "Build Shared Library (OFF for Static)" ON) +OPTION (BUILD_SHARED_LIBS "Build Shared Library (OFF for Static)" OFF) OPTION (BUILD_TESTS "Build Tests" ON) OPTION (THREADSAFE "Build libgit2 as threadsafe" OFF) # Build Release by default IF (NOT CMAKE_BUILD_TYPE) - SET(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE) + SET(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE) ENDIF () IF (THREADSAFE) @@ -81,7 +81,7 @@ ENDIF () # Compile and link libgit2 ADD_LIBRARY(git2 ${SRC} ${SRC_PLAT} ${SRC_SHA1} ${SRC_ZLIB}) -TARGET_LINK_LIBRARIES(git2 ${LIB_SHA1} ${CMAKE_THREAD_LIBS_INIT} ${SQLITE3_LIBRARIES}) +TARGET_LINK_LIBRARIES(git2 ${LIB_SHA1} ${CMAKE_THREAD_LIBS_INIT}) SET_TARGET_PROPERTIES(git2 PROPERTIES VERSION ${LIBGIT2_VERSION_STRING}) SET_TARGET_PROPERTIES(git2 PROPERTIES SOVERSION ${LIBGIT2_VERSION_MAJOR}) @@ -95,17 +95,13 @@ INSTALL(DIRECTORY include/git2 DESTINATION ${INSTALL_INC} ) INSTALL(FILES include/git2.h DESTINATION ${INSTALL_INC} ) # Tests -IF (BUILD_TESTS) - SET(TEST_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/tests/resources" CACHE PATH "Path to test resources.") - ADD_DEFINITIONS(-DTEST_RESOURCES=\"${TEST_RESOURCES}\") - - ENABLE_TESTING() - INCLUDE_DIRECTORIES(tests) - - FILE(GLOB SRC_TEST tests/t??-*.c) - - ADD_EXECUTABLE(libgit2_test tests/test_main.c tests/test_lib.c tests/test_helpers.c ${SRC} ${SRC_PLAT} ${SRC_SHA1} ${SRC_TEST} ${SRC_ZLIB}) - TARGET_LINK_LIBRARIES(libgit2_test ${LIB_SHA1} ${CMAKE_THREAD_LIBS_INIT} ${SQLITE3_LIBRARIES}) - - ADD_TEST(libgit2_test libgit2_test) -ENDIF () +#IF (BUILD_TESTS) +# SET(TEST_RESOURCES "${CMAKE_CURRENT_SOURCE_DIR}/tests/resources" CACHE PATH "Path to test resources.") +# ADD_DEFINITIONS(-DTEST_RESOURCES=\"${TEST_RESOURCES}\") +# +# INCLUDE_DIRECTORIES(tests) +# ADD_EXECUTABLE(libgit2_test tests/libgit2_test.cpp) +# TARGET_LINK_LIBRARIES(libgit2_test git2 ${LIB_SHA1} ${CMAKE_THREAD_LIBS_INIT}) +# +# ADD_TEST(libgit2_test libgit2_test) +#ENDIF () diff --git a/waf b/waf deleted file mode 100755 index 18b9aa3e4b269b0d21966572baca4dec5b77f130..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76176 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 diff --git a/wscript b/wscript deleted file mode 100644 index 92f00da17..000000000 --- a/wscript +++ /dev/null @@ -1,268 +0,0 @@ -from __future__ import with_statement -from waflib.Context import Context -from waflib.Build import BuildContext, CleanContext, \ - InstallContext, UninstallContext - -# Unix flags -CFLAGS_UNIX = ["-O2", "-Wall", "-Wextra", "-fPIC"] -CFLAGS_UNIX_DBG = ['-g', '-O0'] - -# Windows MSVC flags -CFLAGS_WIN32_COMMON = ['/TC', '/W4', '/WX', '/nologo', '/Zi'] -CFLAGS_WIN32_RELEASE = ['/O2', '/MD'] - -# Note: /RTC* cannot be used with optimization on. -CFLAGS_WIN32_DBG = ['/Od', '/RTC1', '/RTCc', '/DEBUG', '/MDd'] -CFLAGS_WIN32_L = ['/RELEASE'] # used for /both/ debug and release builds. - # sets the module's checksum in the header. -CFLAGS_WIN32_L_DBG = ['/DEBUG'] - -ALL_LIBS = ['crypto', 'pthread'] - -def options(opt): - opt.load('compiler_c') - opt.add_option('--sha1', action='store', default='builtin', - help="Use the builtin SHA1 routines (builtin), the \ -PPC optimized version (ppc) or the SHA1 functions from OpenSSL (openssl)") - opt.add_option('--debug', action='store_true', default=False, - help='Compile with debug symbols') - opt.add_option('--msvc', action='store', default=None, - help='Force a specific MSVC++ version (7.1, 8.0, 9.0, 10.0), if more than one is installed') - opt.add_option('--arch', action='store', default='x86', - help='Select target architecture (ia64, x64, x86, x86_amd64, x86_ia64)') - opt.add_option('--threadsafe', action='store_true', default=False, - help='Make libgit2 thread-safe (requires pthreads)') - -def configure(conf): - - # load the MSVC configuration flags - if conf.options.msvc: - conf.env['MSVC_VERSIONS'] = ['msvc ' + conf.options.msvc] - - conf.env['MSVC_TARGETS'] = [conf.options.arch] - - # default configuration for C programs - conf.load('compiler_c') - - dbg = conf.options.debug - - conf.env.CFLAGS += CFLAGS_UNIX + (CFLAGS_UNIX_DBG if dbg else []) - - if conf.env.DEST_OS == 'win32': - conf.env.PLATFORM = 'win32' - - if conf.env.CC_NAME == 'msvc': - conf.env.CFLAGS = CFLAGS_WIN32_COMMON + \ - (CFLAGS_WIN32_DBG if dbg else CFLAGS_WIN32_RELEASE) - conf.env.LINKFLAGS += CFLAGS_WIN32_L + \ - (CFLAGS_WIN32_L_DBG if dbg else []) - conf.env.DEFINES += ['WIN32', '_DEBUG', '_LIB'] - - else: - conf.env.PLATFORM = 'unix' - - if conf.env.DEST_OS == 'sunos': - conf.env.DEFINES += ['NO_VIZ'] - - if conf.options.threadsafe: - if conf.env.PLATFORM == 'unix': - conf.check_cc(lib='pthread', uselib_store='pthread') - conf.env.DEFINES += ['GIT_THREADS'] - - if conf.options.sha1 not in ['openssl', 'ppc', 'builtin']: - conf.fatal('Invalid SHA1 option') - - # check for libcrypto (openssl) if we are using its SHA1 functions - if conf.options.sha1 == 'openssl': - conf.check_cfg(package='libcrypto', args=['--cflags', '--libs'], uselib_store='crypto') - conf.env.DEFINES += ['OPENSSL_SHA1'] - - elif conf.options.sha1 == 'ppc': - conf.env.DEFINES += ['PPC_SHA1'] - - conf.env.sha1 = conf.options.sha1 - -def build(bld): - - # command '[build|clean|install|uninstall]-static' - if bld.variant == 'static': - build_library(bld, 'static') - - # command '[build|clean|install|uninstall]-shared' - elif bld.variant == 'shared': - build_library(bld, 'shared') - - # command '[build|clean]-tests' - elif bld.variant == 'test': - build_library(bld, 'objects') - build_test(bld) - - # command 'build|clean|install|uninstall': by default, run - # the same command for both the static and the shared lib - else: - from waflib import Options - Options.commands = [bld.cmd + '-shared', bld.cmd + '-static'] + Options.commands - -def get_libgit2_version(git2_h): - import re - line = None - - with open(git2_h) as f: - line = re.search(r'^#define LIBGIT2_VERSION "(\d+\.\d+\.\d+)"$', f.read(), re.MULTILINE) - - if line is None: - raise Exception("Failed to detect libgit2 version") - - return line.group(1) - - -def build_library(bld, build_type): - - BUILD = { - 'shared' : bld.shlib, - 'static' : bld.stlib, - 'objects' : bld.objects - } - - directory = bld.path - sources = directory.ant_glob('src/*.c') - - # Find the version of the library, from our header file - version = get_libgit2_version(directory.find_node("include/git2.h").abspath()) - - # Compile platform-dependant code - # E.g. src/unix/*.c - # src/win32/*.c - sources = sources + directory.ant_glob('src/%s/*.c' % bld.env.PLATFORM) - sources = sources + directory.ant_glob('deps/zlib/*.c') - - # SHA1 methods source - if bld.env.sha1 == "ppc": - sources.append('src/ppc/sha1.c') - else: - sources.append('src/block-sha1/sha1.c') - #------------------------------ - # Build the main library - #------------------------------ - - # either as static or shared; - BUILD[build_type]( - source=sources, - target='git2', - includes=['src', 'include', 'deps/zlib'], - install_path='${LIBDIR}', - use=ALL_LIBS, - vnum=version, - ) - - # On Unix systems, build the Pkg-config entry file - if bld.env.PLATFORM == 'unix' and bld.is_install: - bld(rule="""sed -e 's#@prefix@#${PREFIX}#' -e 's#@libdir@#${LIBDIR}#' -e 's#@version@#%s#' < ${SRC} > ${TGT}""" % version, - source='libgit2.pc.in', - target='libgit2.pc', - install_path='${LIBDIR}/pkgconfig', - ) - - # Install headers - bld.install_files('${PREFIX}/include', directory.find_node('include/git2.h')) - bld.install_files('${PREFIX}/include/git2', directory.ant_glob('include/git2/*.h')) - - # On Unix systems, let them know about installation - if bld.env.PLATFORM == 'unix' and bld.cmd == 'install-shared': - bld.add_post_fun(call_ldconfig) - -def call_ldconfig(bld): - import distutils.spawn as s - ldconf = s.find_executable('ldconfig') - if ldconf: - bld.exec_command(ldconf) - -def build_test(bld): - directory = bld.path - resources_path = directory.find_node('tests/resources/').abspath().replace('\\', '/') - - sources = ['tests/test_lib.c', 'tests/test_helpers.c', 'tests/test_main.c'] - sources = sources + directory.ant_glob('tests/t??-*.c') - - bld.program( - source=sources, - target='libgit2_test', - includes=['src', 'tests', 'include'], - defines=['TEST_RESOURCES="%s"' % resources_path], - use=['git2'] + ALL_LIBS - ) - -class _test(BuildContext): - cmd = 'test' - fun = 'test' - -def test(bld): - from waflib import Options - Options.commands = ['build-test', 'run-test'] + Options.commands - -class _build_doc(Context): - cmd = 'doxygen' - fun = 'build_docs' - -def build_docs(ctx): - ctx.exec_command("doxygen api.doxygen") - ctx.exec_command("git stash") - ctx.exec_command("git checkout gh-pages") - ctx.exec_command("cp -Rf apidocs/html/* .") - ctx.exec_command("git add .") - ctx.exec_command("git commit -am 'generated docs'") - ctx.exec_command("git push origin gh-pages") - ctx.exec_command("git checkout master") - -class _run_test(Context): - cmd = 'run-test' - fun = 'run_test' - -def run_test(ctx): - import shutil, tempfile, sys - - failed = False - - test_path = 'build/test/libgit2_test' - if sys.platform == 'win32': - test_path += '.exe' - - test_folder = tempfile.mkdtemp() - test = ctx.path.find_node(test_path) - - if not test or ctx.exec_command(test.abspath(), cwd=test_folder) != 0: - failed = True - - shutil.rmtree(test_folder) - - if failed: - ctx.fatal('Test run failed') - - -CONTEXTS = { - 'build' : BuildContext, - 'clean' : CleanContext, - 'install' : InstallContext, - 'uninstall' : UninstallContext -} - -def build_command(command): - ctx, var = command.split('-') - class _gen_command(CONTEXTS[ctx]): - cmd = command - variant = var - -build_command('build-static') -build_command('build-shared') -build_command('build-test') - -build_command('clean-static') -build_command('clean-shared') -build_command('clean-test') - -build_command('install-static') -build_command('install-shared') - -build_command('uninstall-static') -build_command('uninstall-shared') -