[Scummvm-git-logs] scummvm master -> b24d281748ee6a623cf34a9d7e487eb1bcc435f7
bluegr
noreply at scummvm.org
Sun May 14 20:04:07 UTC 2023
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
b24d281748 CREATE_PROJECT: Add --libs-path command line parameter that can be used in place of setting the SCUMMVM_LIBS environment
Commit: b24d281748ee6a623cf34a9d7e487eb1bcc435f7
https://github.com/scummvm/scummvm/commit/b24d281748ee6a623cf34a9d7e487eb1bcc435f7
Author: elasota (ejlasota at gmail.com)
Date: 2023-05-14T23:04:04+03:00
Commit Message:
CREATE_PROJECT: Add --libs-path command line parameter that can be used in place of setting the SCUMMVM_LIBS environment var
Changed paths:
devtools/create_project/create_project.cpp
devtools/create_project/create_project.h
devtools/create_project/msbuild.cpp
devtools/create_project/msvc.cpp
diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp
index 39171ddbe3b..9ef9a526647 100644
--- a/devtools/create_project/create_project.cpp
+++ b/devtools/create_project/create_project.cpp
@@ -307,6 +307,14 @@ int main(int argc, char *argv[]) {
setup.useXCFramework = true;
} else if (!std::strcmp(argv[i], "--vcpkg")) {
setup.useVcpkg = true;
+ } else if (!std::strcmp(argv[i], "--libs-path")) {
+ if (i + 1 >= argc) {
+ std::cerr << "ERROR: Missing \"path\" parameter for \"--libs-path\"!\n";
+ return -1;
+ }
+ std::string libsDir = unifyPath(argv[++i]);
+ removeTrailingSlash(libsDir);
+ setup.libsDir = libsDir;
} else {
std::cerr << "ERROR: Unknown parameter \"" << argv[i] << "\"\n";
return -1;
@@ -741,7 +749,9 @@ void displayHelp(const char *exe) {
" (default: true)\n"
" --use-windows-ansi Use Windows ANSI APIs\n"
" (default: false)\n"
- " --vcpkg Use vcpkg-provided libraries instead of pre-built SCUMMVM_LIBS\n"
+ " --libs-path path Specify the path of pre-built libraries instead of using the\n"
+ " " LIBS_DEFINE " environment variable\n "
+ " --vcpkg Use vcpkg-provided libraries instead of pre-built libraries\n"
" (default: false)\n"
"\n"
"Engines settings:\n"
diff --git a/devtools/create_project/create_project.h b/devtools/create_project/create_project.h
index 36c35bdba9d..8c263b5695d 100644
--- a/devtools/create_project/create_project.h
+++ b/devtools/create_project/create_project.h
@@ -230,6 +230,7 @@ struct BuildSetup {
std::string srcDir; ///< Path to the sources.
std::string filePrefix; ///< Prefix for the relative path arguments in the project files.
std::string outputDir; ///< Path where to put the MSVC project files.
+ std::string libsDir; ///< Path to libraries for MSVC builds. If absent, use LIBS_DEFINE environment var instead.
StringList includeDirs; ///< List of additional include paths
StringList libraryDirs; ///< List of additional library paths
diff --git a/devtools/create_project/msbuild.cpp b/devtools/create_project/msbuild.cpp
index 3afe72734e5..44fdce9ae10 100644
--- a/devtools/create_project/msbuild.cpp
+++ b/devtools/create_project/msbuild.cpp
@@ -369,10 +369,17 @@ void MSBuildProvider::outputGlobalPropFile(const BuildSetup &setup, std::ofstrea
<< "<Project DefaultTargets=\"Build\" ToolsVersion=\"" << _msvcVersion.project << "\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\n"
<< "\t<PropertyGroup>\n"
<< "\t\t<_PropertySheetDisplayName>" << setup.projectDescription << "_Global</_PropertySheetDisplayName>\n";
+
+ std::string libsPath;
+ if (setup.libsDir.empty())
+ libsPath = "$(" LIBS_DEFINE ")";
+ else
+ libsPath = convertPathToWin(setup.libsDir);
+
if (!setup.useVcpkg) {
- properties << "\t\t<ExecutablePath>$(" << LIBS_DEFINE << ")\\bin;$(" << LIBS_DEFINE << ")\\bin\\" << getMSVCArchName(arch) << ";$(" << LIBS_DEFINE << ")\\$(Configuration)\\bin;$(ExecutablePath)</ExecutablePath>\n"
- << "\t\t<LibraryPath>" << libraryDirsList << "$(" << LIBS_DEFINE << ")\\lib\\" << getMSVCArchName(arch) << ";$(" << LIBS_DEFINE << ")\\lib\\" << getMSVCArchName(arch) << "\\$(Configuration);$(" << LIBS_DEFINE << ")\\lib;$(" << LIBS_DEFINE << ")\\$(Configuration)\\lib;$(LibraryPath)</LibraryPath>\n"
- << "\t\t<IncludePath>" << includeDirsList << "$(" << LIBS_DEFINE << ")\\include;$(" << LIBS_DEFINE << ")\\include\\" << includeSDL << ";$(IncludePath)</IncludePath>\n";
+ properties << "\t\t<ExecutablePath>" << libsPath << "\\bin;" << libsPath << "\\bin\\" << getMSVCArchName(arch) << ";" << libsPath << "\\$(Configuration)\\bin;$(ExecutablePath)</ExecutablePath>\n"
+ << "\t\t<LibraryPath>" << libraryDirsList << libsPath << "\\lib\\" << getMSVCArchName(arch) << ";" << libsPath << "\\lib\\" << getMSVCArchName(arch) << "\\$(Configuration);" << libsPath << "\\lib;" << libsPath << "\\$(Configuration)\\lib;$(LibraryPath)</LibraryPath>\n"
+ << "\t\t<IncludePath>" << includeDirsList << libsPath << "\\include;" << libsPath << "\\include\\" << includeSDL << ";$(IncludePath)</IncludePath>\n";
}
properties << "\t\t<OutDir>$(Configuration)" << getMSVCArchName(arch) << "\\</OutDir>\n"
<< "\t\t<IntDir>$(Configuration)" << getMSVCArchName(arch) << "\\$(ProjectName)\\</IntDir>\n"
diff --git a/devtools/create_project/msvc.cpp b/devtools/create_project/msvc.cpp
index 7c0a2773321..aa667a005e2 100644
--- a/devtools/create_project/msvc.cpp
+++ b/devtools/create_project/msvc.cpp
@@ -291,7 +291,15 @@ std::string MSVCProvider::getPostBuildEvent(MSVC_Architecture arch, const BuildS
}
cmdLine += "bin/" ";
} else {
- cmdLine += " "%" LIBS_DEFINE "%/lib/";
+ std::string libsPath;
+ if (setup.libsDir.empty())
+ libsPath = "%" LIBS_DEFINE "%";
+ else
+ libsPath = convertPathToWin(setup.libsDir);
+
+ cmdLine += " "";
+ cmdLine += libsPath;
+ cmdLine += "/lib/";
cmdLine += getMSVCArchName(arch);
cmdLine += "/$(Configuration)" ";
}
More information about the Scummvm-git-logs
mailing list