diff options
Diffstat (limited to 'Premake5.lua')
-rw-r--r-- | Premake5.lua | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/Premake5.lua b/Premake5.lua new file mode 100644 index 0000000..8805a62 --- /dev/null +++ b/Premake5.lua @@ -0,0 +1,132 @@ + +solution 'StormLib' + location 'build' + language 'C++' + configurations { 'Debug', 'Release', } + platforms { 'x32', 'x64' } + + targetdir 'bin' + objdir 'bin' + + files { + 'src/**.h', + 'src/**.c', + 'src/**.cpp', + 'doc/*.txt', + } + + removefiles { + 'src/adpcm/*_old.*', + 'src/huffman/*_old.*', + 'src/huffman/huff_patch.*', + 'src/pklib/crc32.c', + 'src/zlib/compress.c', + } + + filter 'configurations:Debug*' + flags { 'Symbols' } + defines { '_DEBUG' } + optimize 'Debug' + + filter 'configurations:Release*' + defines { 'NDEBUG' } + optimize 'Full' + + filter 'system:windows' + links { 'wininet', } + defines { 'WINDOWS', '_WINDOWS' } + + filter { 'system:windows', 'platforms:x32' } + defines { 'WIN32', '_WIN32' } + + filter { 'system:windows', 'platforms:x64' } + defines { 'WIN64', '_WIN64' } + + filter 'system:linux' + defines { '_7ZIP_ST', 'BZ_STRICT_ANSI' } + removefiles { + 'src/lzma/C/LzFindMt.*', + 'src/lzma/C/Threads.*', + } + +-------------------------------------------------------------------------------- + +project 'StormLib' + kind 'StaticLib' + + removefiles 'src/SBaseDumpData.cpp' + + configurations { + 'DebugAD', -- Debug Ansi Dynamic + 'DebugAS', -- Debug Ansi Static + 'DebugUD', -- Debug Unicode Dynamic + 'DebugUS', -- Debug Unicode Static + 'ReleaseAD', -- Release Ansi Dynamic + 'ReleaseAS', -- Release Ansi Static + 'ReleaseUD', -- Release Unicode Dynamic' + 'ReleaseUS', -- Release Unicode Static + } + + configmap { + ['Debug'] = 'DebugUS', + ['Release'] = 'ReleaseUS', + } + + filter 'configurations:*S' + flags { 'StaticRuntime' } + + filter { 'configurations:*U*', 'action:vs*' } + flags { 'Unicode' } + + filter { 'configurations:*U*', 'not action:vs*' } + defines { 'UNICODE', '_UNICODE' } + + filter 'DebugAD' + targetsuffix 'DAD' + filter 'ReleaseAD' + targetsuffix 'RAD' + filter 'DebugAS' + targetsuffix 'DAS' + filter 'ReleaseAS' + targetsuffix 'RAS' + filter 'DebugUD' + targetsuffix 'DUD' + filter 'ReleaseUD' + targetsuffix 'RUD' + filter 'DebugUS' + targetsuffix 'DUS' + filter 'ReleaseUS' + targetsuffix 'RUS' + +-------------------------------------------------------------------------------- + +project 'StormLib_dll' + kind 'SharedLib' + + targetname 'Stormlib' + + files { + 'stormlib_dll/DllMain.c', + 'stormlib_dll/StormLib.def', + } + + removefiles 'src/SBaseDumpData.cpp' + + filter { 'system:windows', 'action:gmake' } + linkoptions { + '-Xlinker --enable-stdcall-fixup', + '../stormlib_dll/StormLib.def', + } + + filter 'Debug' + targetsuffix '_d' + +-------------------------------------------------------------------------------- + +project 'StormLib_test' + kind 'ConsoleApp' + + files { + 'test/StormTest.cpp', + } + |