brought back functionality from previous builds but now cross-platform
This commit is contained in:
@@ -10,7 +10,10 @@ CUtlString CLDProject::Link( void )
|
||||
switch(linkType)
|
||||
{
|
||||
case ELINK_EXECUTABLE:
|
||||
szFileName = CUtlString("%s", m_szName.GetString());
|
||||
if (m_target.kernel == TARGET_KERNEL_WINDOWS)
|
||||
szFileName = CUtlString("%s.exe", m_szName.GetString());
|
||||
else
|
||||
szFileName = CUtlString("%s", m_szName.GetString());
|
||||
break;
|
||||
case ELINK_STATIC_LIBRARY:
|
||||
szFileName = CUtlString("lib%s.a", m_szName.GetString());
|
||||
@@ -50,6 +53,7 @@ CUtlString CLDProject::Link( void )
|
||||
for (auto object: objects)
|
||||
args.AppendTail(object.m_szObjectFile);
|
||||
IRunner::Run("ar", args);
|
||||
IRunner::Wait();
|
||||
} else {
|
||||
V_printf(" LINK %s\n", m_szName.GetString());
|
||||
bool shouldRecompile = false;
|
||||
@@ -70,10 +74,18 @@ CUtlString CLDProject::Link( void )
|
||||
"-target",
|
||||
m_target.GetTriplet(),
|
||||
};
|
||||
if (m_target.kernel == TARGET_KERNEL_WINDOWS)
|
||||
{
|
||||
args.AppendTail("-fuse-ld=lld");
|
||||
args.AppendTail("-Wl,--whole-archive");
|
||||
}
|
||||
if (m_target.kernel == TARGET_KERNEL_DARWIN)
|
||||
{
|
||||
args.AppendTail("-isysroot");
|
||||
args.AppendTail("/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk");
|
||||
args.AppendTail("-Wl,-export_dynamic");
|
||||
args.AppendTail("-undefined");
|
||||
args.AppendTail("dynamic_lookup");
|
||||
}
|
||||
if (m_target.kernel == TARGET_KERNEL_IOS)
|
||||
{
|
||||
@@ -89,18 +101,16 @@ CUtlString CLDProject::Link( void )
|
||||
{
|
||||
args.AppendTail("-rdynamic");
|
||||
}
|
||||
if (m_target.kernel == TARGET_KERNEL_DARWIN)
|
||||
{
|
||||
args.AppendTail("-Wl,-export_dynamic");
|
||||
args.AppendTail("-undefined");
|
||||
args.AppendTail("dynamic_lookup");
|
||||
}
|
||||
if (linkType == ELINK_DYNAMIC_LIBRARY)
|
||||
{
|
||||
args.AppendTail("-shared");
|
||||
}
|
||||
for (auto object: objects)
|
||||
args.AppendTail(object.m_szObjectFile);
|
||||
if (m_target.kernel == TARGET_KERNEL_WINDOWS)
|
||||
{
|
||||
args.AppendTail("-Wl,--no-whole-archive");
|
||||
}
|
||||
for (auto lib: libraries)
|
||||
{
|
||||
args.AppendTail("-l");
|
||||
@@ -116,7 +126,9 @@ CUtlString CLDProject::Link( void )
|
||||
args.AppendTail("-framework");
|
||||
args.AppendTail(framework);
|
||||
}
|
||||
|
||||
IRunner::Run("clang++", args);
|
||||
IRunner::Wait();
|
||||
}
|
||||
compiled:
|
||||
return szOutputFile;
|
||||
|
||||
Reference in New Issue
Block a user