mirror of
https://github.com/alex47exe/gse_fork.git
synced 2026-02-03 21:31:18 +01:00
allow overriding deps dir, build dir + consistent cmake install folders naming convention
This commit is contained in:
@@ -105,6 +105,13 @@ newoption {
|
||||
}
|
||||
|
||||
-- build
|
||||
newoption {
|
||||
category = "build",
|
||||
trigger = "deps-dir",
|
||||
description = "Base directory to build dependencies inside (if overridden it MUST be absolute)",
|
||||
value = '/absolute/path/to/my-deps-dir/',
|
||||
default = path.getabsolute(path.join('build', 'deps', os_iden, _ACTION), _MAIN_SCRIPT_DIR),
|
||||
}
|
||||
newoption {
|
||||
category = "build",
|
||||
trigger = "all-build",
|
||||
@@ -189,7 +196,7 @@ end
|
||||
|
||||
-- common defs
|
||||
---------
|
||||
local deps_dir = path.getabsolute(path.join('build', 'deps', os_iden, _ACTION), _MAIN_SCRIPT_DIR)
|
||||
local deps_dir = _OPTIONS["deps-dir"]
|
||||
local third_party_dir = path.getabsolute('third-party')
|
||||
local third_party_deps_dir = path.join(third_party_dir, 'deps', os_iden)
|
||||
local third_party_common_dir = path.join(third_party_dir, 'deps', 'common')
|
||||
@@ -233,6 +240,11 @@ local cmake_common_defs = {
|
||||
'BUILD_SHARED_LIBS=OFF',
|
||||
'CMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded',
|
||||
"CMAKE_CXX_STANDARD=17",
|
||||
|
||||
-- https://cmake.org/cmake/help/latest/command/install.html
|
||||
'CMAKE_INSTALL_LIBDIR=lib', -- on Fedora this is set to 'lib64'
|
||||
'CMAKE_INSTALL_BINDIR=bin', -- |_ ensure consistency on different Linux distros
|
||||
'CMAKE_INSTALL_INCLUDEDIR=include', -- |_ ensure consistency on different Linux distros
|
||||
}
|
||||
|
||||
|
||||
@@ -520,11 +532,14 @@ if _OPTIONS["build-ssq"] or _OPTIONS["all-build"] then
|
||||
end
|
||||
end
|
||||
if _OPTIONS["build-zlib"] or _OPTIONS["all-build"] then
|
||||
local zlib_common_defs = {
|
||||
"ZLIB_BUILD_EXAMPLES=OFF",
|
||||
}
|
||||
if _OPTIONS["32-build"] then
|
||||
cmake_build('zlib', true)
|
||||
cmake_build('zlib', true, zlib_common_defs)
|
||||
end
|
||||
if _OPTIONS["64-build"] then
|
||||
cmake_build('zlib', false)
|
||||
cmake_build('zlib', false, zlib_common_defs)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -808,4 +823,4 @@ if _OPTIONS["build-portaudio"] or _OPTIONS["all-build"] then
|
||||
if _OPTIONS["64-build"] then
|
||||
cmake_build('portaudio', false, portaudio_common_defs)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
173
premake5.lua
173
premake5.lua
@@ -86,7 +86,70 @@ else
|
||||
error('Unsupported os target: "' .. os.target() .. '"')
|
||||
end
|
||||
|
||||
local deps_dir = path.getabsolute(path.join('build', 'deps', os_iden, _ACTION), _MAIN_SCRIPT_DIR)
|
||||
newoption {
|
||||
category = 'protobuf files',
|
||||
trigger = "genproto",
|
||||
description = "Generate .cc/.h files from .proto file",
|
||||
}
|
||||
|
||||
newoption {
|
||||
category = 'build',
|
||||
trigger = "emubuild",
|
||||
description = "Set the EMU_BUILD_STRING",
|
||||
value = "your_string",
|
||||
default = os.date("%Y_%m_%d-%H_%M_%S"),
|
||||
}
|
||||
newoption {
|
||||
category = "build",
|
||||
trigger = "deps-dir",
|
||||
description = "Base directory where dependencies were built (if overridden it MUST be absolute)",
|
||||
value = '/absolute/path/to/my-deps-dir/',
|
||||
default = path.getabsolute(path.join('build', 'deps', os_iden, _ACTION), _MAIN_SCRIPT_DIR),
|
||||
}
|
||||
newoption {
|
||||
category = "build",
|
||||
trigger = "build-dir",
|
||||
description = "Base directory to build the project inside (if overridden it MUST be absolute)",
|
||||
value = '/absolute/path/to/build-dir/',
|
||||
default = "build",
|
||||
}
|
||||
newoption {
|
||||
category = 'visual-includes',
|
||||
trigger = "incexamples",
|
||||
description = "Add all example files in the projects (no impact on build)",
|
||||
}
|
||||
newoption {
|
||||
category = 'visual-includes',
|
||||
trigger = "incdeps",
|
||||
description = "Add all header files from the third-party dependencies in the projects (no impact on build)",
|
||||
}
|
||||
|
||||
-- windows options
|
||||
if os.target() == 'windows' then
|
||||
|
||||
newoption {
|
||||
category = "build",
|
||||
trigger = "dosstub",
|
||||
description = "Change the DOS stub of the Windows builds",
|
||||
}
|
||||
|
||||
newoption {
|
||||
category = "build",
|
||||
trigger = "winsign",
|
||||
description = "Sign Windows builds with a fake certificate",
|
||||
}
|
||||
|
||||
newoption {
|
||||
category = "build",
|
||||
trigger = "winrsrc",
|
||||
description = "Add resources to Windows builds",
|
||||
}
|
||||
|
||||
end
|
||||
-- End windows options
|
||||
|
||||
local deps_dir = _OPTIONS["deps-dir"]
|
||||
local build_dir = _OPTIONS["build-dir"]
|
||||
|
||||
local function genproto()
|
||||
local deps_install_prefix = ''
|
||||
@@ -130,55 +193,6 @@ local function genproto()
|
||||
return os.execute(protoc_exe .. ' dll/net.proto -I./dll/ --cpp_out=' .. out_dir)
|
||||
end
|
||||
|
||||
newoption {
|
||||
category = 'protobuf files',
|
||||
trigger = "genproto",
|
||||
description = "Generate .cc/.h files from .proto file",
|
||||
}
|
||||
|
||||
newoption {
|
||||
category = 'build',
|
||||
trigger = "emubuild",
|
||||
description = "Set the EMU_BUILD_STRING",
|
||||
value = "your_string",
|
||||
default = os.date("%Y_%m_%d-%H_%M_%S"),
|
||||
}
|
||||
|
||||
newoption {
|
||||
category = 'visual-includes',
|
||||
trigger = "incexamples",
|
||||
description = "Add all example files in the projects (no impact on build)",
|
||||
}
|
||||
newoption {
|
||||
category = 'visual-includes',
|
||||
trigger = "incdeps",
|
||||
description = "Add all header files from the third-party dependencies in the projects (no impact on build)",
|
||||
}
|
||||
|
||||
-- windows options
|
||||
if os.target() == 'windows' then
|
||||
|
||||
newoption {
|
||||
category = "build",
|
||||
trigger = "dosstub",
|
||||
description = "Change the DOS stub of the Windows builds",
|
||||
}
|
||||
|
||||
newoption {
|
||||
category = "build",
|
||||
trigger = "winsign",
|
||||
description = "Sign Windows builds with a fake certificate",
|
||||
}
|
||||
|
||||
newoption {
|
||||
category = "build",
|
||||
trigger = "winrsrc",
|
||||
description = "Add resources to Windows builds",
|
||||
}
|
||||
|
||||
end
|
||||
-- End windows options
|
||||
|
||||
|
||||
-- common defines
|
||||
---------
|
||||
@@ -398,6 +412,7 @@ local common_link_win = {
|
||||
-- imgui / overlay
|
||||
"Gdi32" .. static_postfix,
|
||||
"Dwmapi" .. static_postfix,
|
||||
"OpenGL32" .. static_postfix,
|
||||
}
|
||||
-- add deps to win
|
||||
table_append(common_link_win, deps_link)
|
||||
@@ -542,6 +557,7 @@ filter { "platforms:x32", }
|
||||
architecture "x86"
|
||||
filter { "platforms:x64", }
|
||||
architecture "x86_64"
|
||||
filter {} -- reset the filter and remove all active keywords
|
||||
|
||||
|
||||
-- debug/optimization flags
|
||||
@@ -554,6 +570,7 @@ filter { "configurations:*debug", }
|
||||
filter { "configurations:*release", }
|
||||
symbols "Off"
|
||||
optimize "On"
|
||||
filter {} -- reset the filter and remove all active keywords
|
||||
|
||||
|
||||
--- common compiler/linker options
|
||||
@@ -611,6 +628,7 @@ filter { "system:not windows" }
|
||||
defines {
|
||||
"GNUC",
|
||||
}
|
||||
filter {} -- reset the filter and remove all active keywords
|
||||
|
||||
|
||||
-- MinGw on Windows
|
||||
@@ -639,6 +657,7 @@ filter { "system:windows", "action:gmake*", "files:**/detours/creatwth.cpp" }
|
||||
buildoptions {
|
||||
"-include intsafe.h",
|
||||
}
|
||||
filter {} -- reset the filter and remove all active keywords
|
||||
|
||||
|
||||
-- add extra files for clearance
|
||||
@@ -716,7 +735,7 @@ workspace "gbe"
|
||||
project "api_regular"
|
||||
kind "SharedLib"
|
||||
location "%{wks.location}/%{prj.name}"
|
||||
targetdir("build/" .. os_iden .. "/%{_ACTION}/%{cfg.buildcfg}/regular/%{cfg.platform}")
|
||||
targetdir(path.join(build_dir, os_iden, _ACTION, "%{cfg.buildcfg}/regular/%{cfg.platform}"))
|
||||
|
||||
|
||||
-- name
|
||||
@@ -803,7 +822,7 @@ project "api_regular"
|
||||
project "api_experimental"
|
||||
kind "SharedLib"
|
||||
location "%{wks.location}/%{prj.name}"
|
||||
targetdir("build/" .. os_iden .. "/%{_ACTION}/%{cfg.buildcfg}/experimental/%{cfg.platform}")
|
||||
targetdir(path.join(build_dir, os_iden, _ACTION, "%{cfg.buildcfg}/experimental/%{cfg.platform}"))
|
||||
|
||||
|
||||
-- name
|
||||
@@ -936,9 +955,9 @@ project "steamclient_experimental"
|
||||
-- targetdir
|
||||
---------
|
||||
filter { "system:windows", }
|
||||
targetdir("build/" .. os_iden .. "/%{_ACTION}/%{cfg.buildcfg}/steamclient_experimental")
|
||||
targetdir(path.join(build_dir, os_iden, _ACTION, "%{cfg.buildcfg}/steamclient_experimental"))
|
||||
filter { "system:not windows", }
|
||||
targetdir("build/" .. os_iden .. "/%{_ACTION}/%{cfg.buildcfg}/experimental/%{cfg.platform}")
|
||||
targetdir(path.join(build_dir, os_iden, _ACTION, "%{cfg.buildcfg}/experimental/%{cfg.platform}"))
|
||||
|
||||
|
||||
-- name
|
||||
@@ -990,6 +1009,7 @@ project "steamclient_experimental"
|
||||
}
|
||||
removefiles {
|
||||
'libs/detours/uimports.cc',
|
||||
'dll/flat.cpp',
|
||||
}
|
||||
-- deps
|
||||
filter { 'options:incdeps', "platforms:x32", }
|
||||
@@ -1067,7 +1087,7 @@ project "steamclient_experimental"
|
||||
project "tool_lobby_connect"
|
||||
kind "ConsoleApp"
|
||||
location "%{wks.location}/%{prj.name}"
|
||||
targetdir("build/" .. os_iden .. "/%{_ACTION}/%{cfg.buildcfg}/tools/lobby_connect")
|
||||
targetdir(path.join(build_dir, os_iden, _ACTION, "%{cfg.buildcfg}/tools/lobby_connect"))
|
||||
targetname "lobby_connect_%{cfg.platform}"
|
||||
|
||||
|
||||
@@ -1108,6 +1128,7 @@ project "tool_lobby_connect"
|
||||
removefiles {
|
||||
"libs/gamepad/**",
|
||||
detours_files,
|
||||
'dll/flat.cpp',
|
||||
}
|
||||
-- Windows x32 common source files
|
||||
filter { "system:windows", "platforms:x32", "options:winrsrc", }
|
||||
@@ -1156,14 +1177,16 @@ project "tool_lobby_connect"
|
||||
project "tool_generate_interfaces"
|
||||
kind "ConsoleApp"
|
||||
location "%{wks.location}/%{prj.name}"
|
||||
targetdir("build/" .. os_iden .. "/%{_ACTION}/%{cfg.buildcfg}/tools/generate_interfaces")
|
||||
targetdir(path.join(build_dir, os_iden, _ACTION, "%{cfg.buildcfg}/tools/generate_interfaces"))
|
||||
targetname "generate_interfaces_%{cfg.platform}"
|
||||
|
||||
|
||||
-- common source & header files
|
||||
---------
|
||||
files {
|
||||
"tools/generate_interfaces/generate_interfaces.cpp"
|
||||
"tools/generate_interfaces/generate_interfaces.cpp",
|
||||
'helpers/common_helpers.cpp', 'helpers/common_helpers/**',
|
||||
'libs/utfcpp/**',
|
||||
}
|
||||
-- End tool_generate_interfaces
|
||||
|
||||
@@ -1172,8 +1195,8 @@ project "tool_generate_interfaces"
|
||||
project "lib_steamnetworkingsockets"
|
||||
kind "SharedLib"
|
||||
location "%{wks.location}/%{prj.name}"
|
||||
targetdir("build/" .. os_iden .. "/%{_ACTION}/%{cfg.buildcfg}/steamnetworkingsockets/%{cfg.platform}")
|
||||
targetname "steamnetworkingsockets"
|
||||
targetdir(path.join(build_dir, os_iden, _ACTION, "%{cfg.buildcfg}/steamnetworkingsockets/%{cfg.platform}"))
|
||||
targetname "libsteamnetworkingsockets"
|
||||
|
||||
|
||||
-- common source & header files
|
||||
@@ -1182,6 +1205,7 @@ project "lib_steamnetworkingsockets"
|
||||
"networking_sockets_lib/**",
|
||||
"helpers/dbg_log.cpp", "helpers/dbg_log/**",
|
||||
'helpers/common_helpers.cpp', 'helpers/common_helpers/**',
|
||||
'libs/utfcpp/**',
|
||||
}
|
||||
|
||||
|
||||
@@ -1197,9 +1221,9 @@ project "lib_game_overlay_renderer"
|
||||
-- targetdir
|
||||
---------
|
||||
filter { "system:windows", }
|
||||
targetdir("build/" .. os_iden .. "/%{_ACTION}/%{cfg.buildcfg}/steamclient_experimental")
|
||||
targetdir(path.join(build_dir, os_iden, _ACTION, "%{cfg.buildcfg}/steamclient_experimental"))
|
||||
filter { "system:not windows", }
|
||||
targetdir("build/" .. os_iden .. "/%{_ACTION}/%{cfg.buildcfg}/gameoverlayrenderer/%{cfg.platform}")
|
||||
targetdir(path.join(build_dir, os_iden, _ACTION, "%{cfg.buildcfg}/gameoverlayrenderer/%{cfg.platform}"))
|
||||
|
||||
|
||||
-- name
|
||||
@@ -1231,7 +1255,9 @@ project "lib_game_overlay_renderer"
|
||||
---------
|
||||
filter {} -- reset the filter and remove all active keywords
|
||||
files {
|
||||
"game_overlay_renderer_lib/**"
|
||||
"game_overlay_renderer_lib/**",
|
||||
"dll/common_includes.h",
|
||||
"common_helpers/os_detector.h",
|
||||
}
|
||||
-- x32 common source files
|
||||
filter { "system:windows", "platforms:x32", "options:winrsrc", }
|
||||
@@ -1257,7 +1283,7 @@ project "steamclient_experimental_stub"
|
||||
-- https://stackoverflow.com/a/63228027
|
||||
kind "SharedLib"
|
||||
location "%{wks.location}/%{prj.name}"
|
||||
targetdir("build/" .. os_iden .. "/%{_ACTION}/%{cfg.buildcfg}/experimental/%{cfg.platform}")
|
||||
targetdir(path.join(build_dir, os_iden, _ACTION, "%{cfg.buildcfg}/experimental/%{cfg.platform}"))
|
||||
|
||||
|
||||
-- name
|
||||
@@ -1291,7 +1317,7 @@ project "steamclient_experimental_stub"
|
||||
project "steamclient_experimental_extra"
|
||||
kind "SharedLib"
|
||||
location "%{wks.location}/%{prj.name}"
|
||||
targetdir("build/" .. os_iden .. "/%{_ACTION}/%{cfg.buildcfg}/steamclient_experimental/extra_dlls")
|
||||
targetdir(path.join(build_dir, os_iden, _ACTION, "%{cfg.buildcfg}/steamclient_experimental/extra_dlls"))
|
||||
targetname "steamclient_extra_%{cfg.platform}"
|
||||
|
||||
|
||||
@@ -1316,6 +1342,7 @@ project "steamclient_experimental_extra"
|
||||
"tools/steamclient_loader/win/extra_protection/**",
|
||||
"helpers/pe_helpers.cpp", "helpers/pe_helpers/**",
|
||||
"helpers/common_helpers.cpp", "helpers/common_helpers/**",
|
||||
'libs/utfcpp/**',
|
||||
-- detours
|
||||
detours_files,
|
||||
}
|
||||
@@ -1339,7 +1366,7 @@ project "steamclient_experimental_extra"
|
||||
project "steamclient_experimental_loader"
|
||||
kind "WindowedApp"
|
||||
location "%{wks.location}/%{prj.name}"
|
||||
targetdir("build/" .. os_iden .. "/%{_ACTION}/%{cfg.buildcfg}/steamclient_experimental")
|
||||
targetdir(path.join(build_dir, os_iden, _ACTION, "%{cfg.buildcfg}/steamclient_experimental"))
|
||||
targetname "steamclient_loader_%{cfg.platform}"
|
||||
|
||||
|
||||
@@ -1362,6 +1389,7 @@ project "steamclient_experimental_loader"
|
||||
"helpers/pe_helpers.cpp", "helpers/pe_helpers/**",
|
||||
"helpers/common_helpers.cpp", "helpers/common_helpers/**",
|
||||
"helpers/dbg_log.cpp", "helpers/dbg_log/**",
|
||||
'libs/utfcpp/**',
|
||||
"libs/simpleini/**",
|
||||
}
|
||||
-- x32 common source files
|
||||
@@ -1390,7 +1418,7 @@ project "steamclient_experimental_loader"
|
||||
project "tool_file_dos_stub_changer"
|
||||
kind "ConsoleApp"
|
||||
location "%{wks.location}/%{prj.name}"
|
||||
targetdir("build/" .. os_iden .. "/%{_ACTION}/%{cfg.buildcfg}/file_dos_stub_changer")
|
||||
targetdir(path.join(build_dir, os_iden, _ACTION, "%{cfg.buildcfg}/file_dos_stub_changer"))
|
||||
targetname "file_dos_stub_%{cfg.platform}"
|
||||
|
||||
|
||||
@@ -1401,6 +1429,7 @@ project "tool_file_dos_stub_changer"
|
||||
"resources/win/file_dos_stub/file_dos_stub.cpp",
|
||||
"helpers/pe_helpers.cpp", "helpers/pe_helpers/**",
|
||||
"helpers/common_helpers.cpp", "helpers/common_helpers/**",
|
||||
'libs/utfcpp/**',
|
||||
}
|
||||
-- End tool_file_dos_stub_changer
|
||||
|
||||
@@ -1410,7 +1439,7 @@ project "tool_file_dos_stub_changer"
|
||||
project "test_crash_printer"
|
||||
kind "ConsoleApp"
|
||||
location "%{wks.location}/%{prj.name}"
|
||||
targetdir("build/" .. os_iden .. "/%{_ACTION}/%{cfg.buildcfg}/tests/crash_printer")
|
||||
targetdir(path.join(build_dir, os_iden, _ACTION, "%{cfg.buildcfg}/tests/crash_printer"))
|
||||
targetname "test_crash_printer_%{cfg.platform}"
|
||||
|
||||
|
||||
@@ -1421,6 +1450,7 @@ project "test_crash_printer"
|
||||
'crash_printer/' .. os_iden .. '.cpp', 'crash_printer/crash_printer/' .. os_iden .. '.hpp',
|
||||
-- helpers
|
||||
'helpers/common_helpers.cpp', 'helpers/common_helpers/**',
|
||||
'libs/utfcpp/**',
|
||||
-- test files
|
||||
'crash_printer/tests/test_win.cpp',
|
||||
}
|
||||
@@ -1460,7 +1490,7 @@ if os.target() == "linux" then
|
||||
project "steamclient_regular"
|
||||
kind "SharedLib"
|
||||
location "%{wks.location}/%{prj.name}"
|
||||
targetdir("build/" .. os_iden .. "/%{_ACTION}/%{cfg.buildcfg}/regular/%{cfg.platform}")
|
||||
targetdir(path.join(build_dir, os_iden, _ACTION, "%{cfg.buildcfg}/regular/%{cfg.platform}"))
|
||||
targetname "steamclient"
|
||||
|
||||
|
||||
@@ -1494,6 +1524,7 @@ project "steamclient_regular"
|
||||
}
|
||||
removefiles {
|
||||
detours_files,
|
||||
'dll/flat.cpp',
|
||||
}
|
||||
|
||||
|
||||
@@ -1524,7 +1555,7 @@ project "steamclient_regular"
|
||||
project "test_crash_printer_sa_handler"
|
||||
kind "ConsoleApp"
|
||||
location "%{wks.location}/%{prj.name}"
|
||||
targetdir("build/" .. os_iden .. "/%{_ACTION}/%{cfg.buildcfg}/tests/crash_printer")
|
||||
targetdir(path.join(build_dir, os_iden, _ACTION, "%{cfg.buildcfg}/tests/crash_printer"))
|
||||
targetname "test_crash_printer_sa_handler_%{cfg.platform}"
|
||||
|
||||
|
||||
@@ -1535,6 +1566,7 @@ project "test_crash_printer_sa_handler"
|
||||
'crash_printer/' .. os_iden .. '.cpp', 'crash_printer/crash_printer/' .. os_iden .. '.hpp',
|
||||
-- helpers
|
||||
'helpers/common_helpers.cpp', 'helpers/common_helpers/**',
|
||||
'libs/utfcpp/**',
|
||||
-- test files
|
||||
'crash_printer/tests/test_linux_sa_handler.cpp',
|
||||
}
|
||||
@@ -1559,7 +1591,7 @@ project "test_crash_printer_sa_handler"
|
||||
project "test_crash_printer_sa_sigaction"
|
||||
kind "ConsoleApp"
|
||||
location "%{wks.location}/%{prj.name}"
|
||||
targetdir("build/" .. os_iden .. "/%{_ACTION}/%{cfg.buildcfg}/tests/crash_printer")
|
||||
targetdir(path.join(build_dir, os_iden, _ACTION, "%{cfg.buildcfg}/tests/crash_printer"))
|
||||
targetname "test_crash_printer_sa_sigaction_%{cfg.platform}"
|
||||
|
||||
|
||||
@@ -1570,6 +1602,7 @@ project "test_crash_printer_sa_sigaction"
|
||||
'crash_printer/' .. os_iden .. '.cpp', 'crash_printer/crash_printer/' .. os_iden .. '.hpp',
|
||||
-- helpers
|
||||
'helpers/common_helpers.cpp', 'helpers/common_helpers/**',
|
||||
'libs/utfcpp/**',
|
||||
-- test files
|
||||
'crash_printer/tests/test_linux_sa_sigaction.cpp',
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user