0b1b8f60a4
FossilOrigin-Name: 66200db6f53cf736216777c7922d658ef47c00b93d2aa5844babf81d98a91359
117 lines
2.5 KiB
Lua
117 lines
2.5 KiB
Lua
premake.gcc.cc = os.getenv("CC") or 'cc';
|
|
|
|
if not os.isfile('config.h') then
|
|
print("Note: `config.h' not found, until a new Treebird release comes out,");
|
|
print(" please copy `config.def.h' and edit it.");
|
|
os.exit(1);
|
|
end
|
|
|
|
solution "Treebird";
|
|
configurations { "Debug", "Release" };
|
|
|
|
local c_files = {
|
|
'main.c',
|
|
'types.c',
|
|
'cookie.c',
|
|
'easprintf.c',
|
|
'error.c',
|
|
'memory.c',
|
|
'helpers.c',
|
|
'key.c',
|
|
'local_config.c',
|
|
'local_config_set.c',
|
|
'query.c',
|
|
'string.c',
|
|
'string_helpers.c',
|
|
'request.c',
|
|
'session.c',
|
|
'path.c',
|
|
'mime.c',
|
|
};
|
|
|
|
-- Not actually real 'pages', but the ones we compile in / create definitions
|
|
local pages = {
|
|
'about.c',
|
|
'account.c',
|
|
'applications.c',
|
|
'attachments.c',
|
|
'base_page.c',
|
|
'conversations.c',
|
|
'emoji.c',
|
|
'emoji_reaction.c',
|
|
'global_cache.c',
|
|
'global_perl.c',
|
|
'hashtag.c',
|
|
'http.c',
|
|
'index.c',
|
|
'lists.c',
|
|
-- 'login.c',
|
|
-- 'memory_page.c',
|
|
-- 'notifications.c',
|
|
-- 'page_config.c',
|
|
-- 'scrobble.c',
|
|
-- 'search.c',
|
|
-- 'status.c',
|
|
-- 'timeline.c',
|
|
};
|
|
|
|
local definitions = {};
|
|
|
|
-- Create definitions for page enabling
|
|
for i=1, table.getn(pages) do
|
|
local def = 'CMP_ENABLE_' .. string.upper(string.sub(pages[i], 0, -3));
|
|
table.insert(definitions, def);
|
|
end
|
|
|
|
-- Prepend with 'src/'
|
|
for i=1, table.getn(c_files) do c_files[i] = 'src/'.. c_files[i] end
|
|
for i=1, table.getn(pages) do pages[i] = 'src/'.. pages[i] end
|
|
|
|
-- BEGIN Mastodont project
|
|
project("treebird");
|
|
kind("ConsoleApp");
|
|
language("C");
|
|
-- Merge pages into c_files
|
|
for _, v in ipairs(pages) do
|
|
table.insert(c_files, v);
|
|
end
|
|
files(c_files);
|
|
includedirs { "include/" };
|
|
defines(definitions);
|
|
|
|
-- For some reason this one doesn't have a pkg-config file
|
|
local libfcgi = os.findlib("libfcgi");
|
|
if not libfcgi then
|
|
print("Couldn't find libfcgi (aka fcgi-devkit). Probably gonna need that.\n");
|
|
os.exit(1);
|
|
end
|
|
|
|
configuration { "gmake" };
|
|
linkoptions{ "`pkg-config --libs mastodont` `perl -MExtUtils::Embed -e ldopts`" };
|
|
buildoptions{ "`pkg-config --cflags mastodont` `perl -MExtUtils::Embed -e ccopts`" };
|
|
links{"fcgi"};
|
|
|
|
if premake.gcc.cc ~= 'clang' then
|
|
buildoptions{"-Wno-compound-token-split-by-macro"};
|
|
end
|
|
|
|
configuration { "Debug" };
|
|
defines { "DEBUG" };
|
|
flags("Symbols");
|
|
|
|
configuration { "Release" };
|
|
defines { "NDEBUG" };
|
|
flags("Optimize");
|
|
-- END Mastodont-c
|
|
|
|
local prefix = os.getenv("PREFIX") or "/usr/local";
|
|
|
|
newaction {
|
|
trigger = "install",
|
|
description = "install binary",
|
|
execute = function()
|
|
os.copyfile("treebird", prefix .. "/bin");
|
|
os.mkdir(prefix .. "/share/treebird");
|
|
os.execute("install -d dist/ " .. prefix .. "/share/treebird");
|
|
end
|
|
}
|