aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/3rdparty/botan/botan.qbs
blob: ee8afc1d0337d8f6e9fb814cbe494a4f3846e563 (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
66
67
68
69
70
import qbs.base 1.0
import "../../QtcLibrary.qbs" as QtcLibrary

QtcLibrary {
    name: "Botan"

    Depends { name: "cpp" }
    Depends { name: "Qt.core" }

    cpp.includePaths: '.'
    cpp.dynamicLibraries: {
        if (qbs.targetOS == "windows") {
            return [
                "advapi32",
                "user32"
            ]
        } else {
            return ["rt", "dl"]
        }
    }

    cpp.defines: {
        var result = ["BOTAN_DLL=Q_DECL_EXPORT"]
        if (qbs.toolchain == "msvc")
            result.push("BOTAN_BUILD_COMPILER_IS_MSVC", "BOTAN_TARGET_OS_HAS_GMTIME_S")
        if (qbs.toolchain == "gcc" || qbs.toolchain == "mingw")
            result.push("BOTAN_BUILD_COMPILER_IS_GCC")
        if (qbs.targetOS == "linux")
            result.push("BOTAN_TARGET_OS_IS_LINUX", "BOTAN_TARGET_OS_HAS_CLOCK_GETTIME",
                "BOTAN_TARGET_OS_HAS_DLOPEN", " BOTAN_TARGET_OS_HAS_GMTIME_R",
                "BOTAN_TARGET_OS_HAS_POSIX_MLOCK", "BOTAN_HAS_DYNAMICALLY_LOADED_ENGINE",
                "BOTAN_HAS_DYNAMIC_LOADER", "BOTAN_TARGET_OS_HAS_GETTIMEOFDAY",
                "BOTAN_HAS_ALLOC_MMAP", "BOTAN_HAS_ENTROPY_SRC_DEV_RANDOM",
                "BOTAN_HAS_ENTROPY_SRC_EGD", "BOTAN_HAS_ENTROPY_SRC_FTW",
                "BOTAN_HAS_ENTROPY_SRC_UNIX", "BOTAN_HAS_MUTEX_PTHREAD", "BOTAN_HAS_PIPE_UNIXFD_IO")
        if (qbs.targetOS == "mac")
            result.push("BOTAN_TARGET_OS_IS_DARWIN", "BOTAN_TARGET_OS_HAS_GETTIMEOFDAY",
                "BOTAN_HAS_ALLOC_MMAP", "BOTAN_HAS_ENTROPY_SRC_DEV_RANDOM",
                "BOTAN_HAS_ENTROPY_SRC_EGD", "BOTAN_HAS_ENTROPY_SRC_FTW",
                "BOTAN_HAS_ENTROPY_SRC_UNIX", "BOTAN_HAS_MUTEX_PTHREAD", "BOTAN_HAS_PIPE_UNIXFD_IO")
        if (qbs.targetOS == "windows")
            result.push("BOTAN_TARGET_OS_IS_WINDOWS",
                "BOTAN_TARGET_OS_HAS_LOADLIBRARY", "BOTAN_TARGET_OS_HAS_WIN32_GET_SYSTEMTIME",
                "BOTAN_TARGET_OS_HAS_WIN32_VIRTUAL_LOCK", "BOTAN_HAS_DYNAMICALLY_LOADED_ENGINE",
                "BOTAN_HAS_DYNAMIC_LOADER", "BOTAN_HAS_ENTROPY_SRC_CAPI",
                "BOTAN_HAS_ENTROPY_SRC_WIN32", "BOTAN_HAS_MUTEX_WIN32")
        return base.concat(result)
    }

    Properties {
        condition: qbs.toolchain == "mingw"
        cpp.cxxFlags: [
            "-fpermissive",
            "-finline-functions",
            "-Wno-long-long"
        ]
    }

    files: [ "botan.h", "botan.cpp" ]

    ProductModule {
        Depends { name: "cpp" }
        cpp.linkerFlags: {
            if (qbs.toolchain == "mingw") {
                return ["-Wl,--enable-auto-import"]
            }
        }
        cpp.includePaths: '..'
    }
}