aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
blob: 6b4c3aeba413f629b3ef52e4d55bf4385810a62a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
cmake_minimum_required(VERSION 3.0.2)
project(sibs)

set(CMAKE_CXX_STANDARD 14)

option(BUILD_STATIC "Build sibs statically on linux" OFF)

set(SOURCE_FILES
        external/xxhash.c
        backend/ninja/Ninja.cpp
        backend/BackendUtils.cpp
        src/main.cpp
        src/FileUtil.cpp
        src/Conf.cpp
        src/PkgConfig.cpp
        src/Exec.cpp
        src/GlobalLib.cpp
        src/curl.cpp
        src/Archive.cpp
        src/CmakeModule.cpp
        src/Package.cpp
        src/GitRepository.cpp
        src/Platform.cpp
        
        depends/libninja/src/Ninja.cpp)

find_package(CURL REQUIRED)

if(APPLE)
    set(LibArchive_LIBRARIES "/usr/local/opt/libarchive/lib/libarchive.dylib")
    set(LibArchive_INCLUDE_DIR "/usr/local/opt/libarchive/include")
else()
    find_package(LibArchive REQUIRED)
endif()

add_executable(sibs ${SOURCE_FILES})
include_directories(${CURL_INCLUDE_DIR} ${LibArchive_INCLUDE_DIR} "depends/libninja/include")

if(WIN32)
    target_link_libraries(sibs ${CURL_LIBRARIES} ${LibArchive_LIBRARIES} "${CMAKE_CURRENT_SOURCE_DIR}/static/windows/git2.lib")
    target_compile_options(sibs PRIVATE /Wall)
else()
    if(BUILD_STATIC AND UNIX AND NOT APPLE AND CMAKE_SIZEOF_VOID_P EQUAL 8)
        target_link_libraries(sibs 
        -static
        "${CMAKE_CURRENT_SOURCE_DIR}/static/linux/libarchive.a"
        "${CMAKE_CURRENT_SOURCE_DIR}/static/linux/libbz2.a"
        "${CMAKE_CURRENT_SOURCE_DIR}/static/linux/libxml2.a"
        "${CMAKE_CURRENT_SOURCE_DIR}/static/linux/liblzma.a"
        "${CMAKE_CURRENT_SOURCE_DIR}/static/linux/liblz4.a"
        "${CMAKE_CURRENT_SOURCE_DIR}/static/linux/libgit2.a"
        "${CMAKE_CURRENT_SOURCE_DIR}/static/linux/libcurl.a"
        "${CMAKE_CURRENT_SOURCE_DIR}/static/linux/libz.a"
        "${CMAKE_CURRENT_SOURCE_DIR}/static/linux/libssh2.a"
        "${CMAKE_CURRENT_SOURCE_DIR}/static/linux/libhttp_parser.a"
        "${CMAKE_CURRENT_SOURCE_DIR}/static/linux/libssl.a"
        "${CMAKE_CURRENT_SOURCE_DIR}/static/linux/libcrypto.a"
        -pthread 
        -ldl 
        -lm)
    else()
        target_link_libraries(sibs ${CURL_LIBRARIES} ${LibArchive_LIBRARIES} -lgit2)
    endif()
    target_compile_options(sibs PRIVATE -Wall -Wextra -Werror=return-type -fdiagnostics-show-option -fexceptions)
endif()