/
sw.h
132 lines (107 loc) · 2.74 KB
/
sw.h
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
// Copyright (C) 2017-2019 Egor Pugin <egor.pugin@gmail.com>
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
#pragma once
// builder stuff
#include "jumppad.h"
#include "module.h"
#include "build.h"
#include "suffix.h"
#include "target/all.h"
#include "compiler_helpers.h"
#include "sw_context.h"
#include <sw/manager/storage.h>
// support stuff
#include <boost/algorithm/string.hpp>
// precise usings and namespaces
// namespaces
using namespace sw::literals;
using namespace sw::source;
namespace cmd = sw::cmd;
namespace builder = sw::builder;
namespace vs = sw::vs;
namespace cl = sw::cl;
// general
using sw::SwContext;
using sw::Build;
using Solution = Build;
using sw::Checker;
using sw::Test;
using sw::driver::Command;
// options
using sw::File;
using sw::FileRegex;
using sw::IncludeDirectory;
using sw::Definition;
using sw::DefinitionsType;
using sw::LinkLibrary;
using sw::Dependency;
using sw::DependencyPtr;
using sw::NativeCompilerOptions;
// pkgs
using sw::PackageId;
using sw::PackagePath;
using sw::Version;
//using sw::UnresolvedPackages;
// targets
using sw::TargetBase;
using sw::Target;
using sw::ProjectTarget;
using sw::DirectoryTarget;
using sw::NativeTarget;
using sw::NativeCompiledTarget;
using NativeExecutedTarget = NativeCompiledTarget; // old
using sw::LibraryTarget;
using sw::StaticLibraryTarget;
using sw::SharedLibraryTarget;
using sw::ExecutableTarget;
// new aliases
using Project = ProjectTarget; // deprecate?
using Library = LibraryTarget;
using StaticLibrary = StaticLibraryTarget;
using SharedLibrary = SharedLibraryTarget;
using Executable = ExecutableTarget;
using sw::ConfigureFlags;
using sw::PrecompiledHeader;
// enums
using sw::OSType;
using sw::ArchType;
using sw::CompilerType;
using sw::LinkerType;
using sw::LibraryType;
using sw::ConfigurationType;
using sw::TargetScope;
using sw::InheritanceType;
// command line options
//using sw::Program;
using sw::Compiler;
//using sw::NativeCompiler;
using sw::VisualStudioCompiler;
using sw::VisualStudioASMCompiler;
using sw::VisualStudioLinker;
using sw::GNUCompiler;
using sw::GNULibrarian;
using sw::GNULinker;
using sw::NativeSourceFile;
using sw::NativeLinkerOptions;
//
using sw::CommandLineOption;
//using sw::CommandLineOptions;
// language standards
using sw::CLanguageStandard;
using sw::CPPLanguageStandard;
#define STD_MACRO(x, p) using sw::detail::p##x;
#include <sw/driver/target/std.inl>
#undef STD_MACRO
// functions
using sw::toString;
// disable custom pragma warnings
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable : 4068) // unknown #pragma
#endif
//#ifdef _MSC_VER
//#include "sw1.h"
//#endif