forked from embeddedartistry/libc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpremake5.lua
executable file
·137 lines (106 loc) · 3.01 KB
/
premake5.lua
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
133
134
135
136
137
-- Copyright © 2017 Embedded Artistry LLC.
-- License: MIT. See LICENSE file for details.
-- For reference, please refer to the premake wiki:
-- https://github.com/premake/premake-core/wiki
local arch_ = require "build/modules/arch"
local ROOT = "./"
local RESULTSROOT = ROOT .. "buildresults/%{cfg.platform}_%{cfg.buildcfg}/"
--------------------------------
-- WORKSPACE CONFIGURATION --
--------------------------------
workspace "EmbeddedArtistry LibC"
configurations { "debug", "release" }
platforms { "x86_64", "x86_32" }
-- _ACTION is the argument you passed into premake5 when you ran it.
local project_action = "UNDEFINED"
if _ACTION ~= nill then project_action = _ACTION end
-- Where the project/make files are output
location(ROOT .. "build/gen")
-----------------------------------
-- Global Compiler/Linker Config --
-----------------------------------
filter "configurations:Debug" defines { "DEBUG" } symbols "On"
filter "configurations:Release" defines { "NDEBUG" } optimize "On"
filter { "platforms:x86_32" }
architecture "x86"
filter { "platforms:x86_64" }
architecture "x86_64"
-- Global settings for building makefiles
filter { "action:gmake" }
flags { "C++11" }
-- Global settings for building make files on mac specifically
filter { "system:macosx", "action:gmake"}
toolset "clang"
filter {} -- clear filter when you know you no longer need it!
project "libc"
kind "StaticLib"
language "C"
targetdir (RESULTSROOT .. "libc")
targetname "c"
local SourceDir = ROOT .. "src/";
files
{
SourceDir .. "**.h",
SourceDir .. "**.c"
}
removefiles { "**/arithchk.c", "**/qnan.c" }
buildoptions {"-fno-builtin", "-nodefaultlibs"}
linkoptions {"-nodefaultlibs", "-nostartfiles"}
filter {} -- clear filter!
defines
{
"NO_ERRNO", --gdtoa
"INFNAN_CHECK", --gdtoa
"GDTOA_NO_ASSERT", --gdtoa, temporary
"GDTOA_NO_MATH_H", --gdtoa, temporary
"NO_FENV_H", --gdtoa
}
includedirs
{
arch_.include(),
SourceDir,
SourceDir .. "gdtoa/include",
SourceDir .. "../include/",
ROOT .. "lib/",
"/usr/local/opt/llvm/include",
"/usr/local/opt/llvm/include/c++/v1/"
}
libdirs
{
}
links
{
}
project "libc_UnitTests"
kind "ConsoleApp"
language "C"
targetdir (RESULTSROOT .. "test/")
targetname "libc.bin"
--Temporary
removeplatforms { "X86_32" }
local SourceDir = ROOT .. "test/";
files
{
SourceDir .. "**.h",
SourceDir .. "**.c",
}
filter {} -- clear filter!
includedirs
{
SourceDir, -- include root source directory to allow for absolute include paths
arch_.include(),
ROOT .. "include/",
ROOT .. "test/cmocka/",
"/usr/local/opt/llvm/include",
"/usr/local/opt/llvm/include/c++/v1/"
}
-- Library Dependencies
libdirs
{
arch_.lib() .. "cmocka/"
}
links
{
"libc",
"cmocka"
}