forked from wxFormBuilder/ticpp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ticpp.lua
121 lines (109 loc) · 4.52 KB
/
ticpp.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
--*****************************************************************************
--* Author: RJP Computing <[email protected]>
--* Date: 01/21/2008
--* Version: 1.02
--* Copyright (C) 2008 RJP Computing
--*
--* Permission is hereby granted, free of charge, to any person obtaining a copy of
--* this software and associated documentation files (the "Software"), to deal in
--* the Software without restriction, including without limitation the rights to
--* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
--* the Software, and to permit persons to whom the Software is furnished to do so,
--* subject to the following conditions:
--*
--* The above copyright notice and this permission notice shall be included in all
--* copies or substantial portions of the Software.
--*
--* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
--* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
--* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
--* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
--* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
--* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--*
--* NOTES:
--* - use the '/' slash for all paths.
--*****************************************************************************
--******* Initial Setup ************
--* Most of the setting are set here.
--**********************************
-- Set the name of your package.
package.name = "TiCPP"
-- Set this if you want a different name for your target than the package's name.
local targetName = "ticpp"
-- Set the kind of package you want to create.
if ( options["ticpp-shared"] ) then
package.kind = "dll"
else
package.kind = "lib"
end
-- Set the files to include/exclude.
package.files = { matchfiles( "*.cpp", "*.h" ) }
package.excludes = { "xmltest.cpp" }
-- Setup the output directory options.
-- Note: Use 'libdir' for "lib" kind only.
package.bindir = "../lib"
package.libdir = "../lib"
-- Set the defines.
package.defines = { "TIXML_USE_TICPP" }
--------------------------- DO NOT EDIT BELOW ----------------------------------
--******* GENAERAL SETUP **********
--* Settings that are not dependant
--* on the operating system.
--*********************************
-- Package options
addoption( "ticpp-shared", "Build the library as a dll" )
-- Common setup
package.language = "c++"
-- Set object output directory.
if ( string.find( target or "", ".*-gcc" ) or target == "gnu" ) then
package.objdir = ".obj"
end
-- Set the default targetName if none is specified.
if ( string.len( targetName ) == 0 ) then
targetName = package.name
end
-- Set the targets.
package.config["Release"].target = targetName
package.config["Debug"].target = targetName.."d"
-- Set the build options.
if ( options["dynamic-runtime"] ) then
package.buildflags = { "extra-warnings" }
package.config["Release"].buildflags = { "no-symbols", "optimize-speed" }
else
package.buildflags = { "static-runtime", "extra-warnings" }
package.config["Release"].buildflags = { "no-symbols", "optimize-speed" }
end
if ( options["unicode"] ) then
table.insert( package.buildflags, "unicode" )
end
if ( string.find( target or "", ".*-gcc" ) or target == "gnu" ) then
table.insert( package.config["Debug"].buildoptions, "-O0" )
end
-- Set the defines.
if ( options["unicode"] ) then
table.insert( package.defines, { "UNICODE", "_UNICODE" } )
end
table.insert( package.config["Debug"].defines, { "DEBUG", "_DEBUG" } )
table.insert( package.config["Release"].defines, "NDEBUG" )
if ( ( target == "vs2005" ) or ( target == "vs2008" ) ) then
-- Windows and Visual C++ 2005/2008
table.insert( package.defines, "_CRT_SECURE_NO_DEPRECATE" )
end
if ( OS == "windows" ) then
--******* WINDOWS SETUP ***********
--* Settings that are Windows specific.
--*********************************
-- Set the Windows defines.
table.insert( package.defines, { "WIN32", "_WINDOWS" } )
else
--******* LINUX SETUP *************
--* Settings that are Linux specific.
--*********************************
-- Ignore resource files in Linux.
table.insert( package.excludes, matchrecursive( "*.rc" ) )
table.insert( package.buildoptions, "-fPIC" )
end
if ( package.kind == "dll" ) then
table.insert( package.defines, "BUILD_TICPP_DLL" )
end