Merge pull request #843 from schellap/master

Fix host name, debuggability and embed CRT
This commit is contained in:
Senthil 2016-01-14 17:09:07 -08:00
commit 262274b968
11 changed files with 73 additions and 21 deletions

View file

@ -26,7 +26,7 @@ ln -s $INSTALL_DESTINATION/bin/dotnet-run /usr/local/bin/
ln -s $INSTALL_DESTINATION/bin/dotnet-test /usr/local/bin/
ln -s $INSTALL_DESTINATION/bin/dotnet-dnx /usr/local/bin/
ln -s $INSTALL_DESTINATION/bin/csc /usr/local/bin/
ln -s $INSTALL_DESTINATION/bin/libclihost.dylib /usr/local/bin/
ln -s $INSTALL_DESTINATION/bin/libhostpolicy.dylib /usr/local/bin/
# A temporary solution to unblock dotnet compile
cp $INSTALL_DESTINATION/bin/corehost /usr/local/bin/

View file

@ -17,25 +17,29 @@ try {
if (Test-Path "env:\ProgramFiles(x86)") {
$pf = (cat "env:\ProgramFiles(x86)")
}
& "$pf\MSBuild\14.0\Bin\MSBuild.exe" ALL_BUILD.vcxproj /p:Configuration="$Configuration"
$BuildConfiguration = $Configuration
if ($Configuration -eq "Release") {
$BuildConfiguration = "RelWithDebInfo"
}
& "$pf\MSBuild\14.0\Bin\MSBuild.exe" ALL_BUILD.vcxproj /p:Configuration="$BuildConfiguration"
if (!$?) {
Write-Host "Command failed: $pf\MSBuild\14.0\Bin\MSBuild.exe" ALL_BUILD.vcxproj /p:Configuration="$Configuration"
Write-Host "Command failed: $pf\MSBuild\14.0\Bin\MSBuild.exe" ALL_BUILD.vcxproj /p:Configuration="$BuildConfiguration"
Exit 1
}
if (!(Test-Path $HostDir)) {
mkdir $HostDir | Out-Null
}
cp "$RepoRoot\src\corehost\cmake\$Rid\cli\$Configuration\corehost.exe" $HostDir
cp "$RepoRoot\src\corehost\cmake\$Rid\cli\dll\$Configuration\clihost.dll" $HostDir
cp "$RepoRoot\src\corehost\cmake\$Rid\cli\$BuildConfiguration\corehost.exe" $HostDir
cp "$RepoRoot\src\corehost\cmake\$Rid\cli\dll\$BuildConfiguration\hostpolicy.dll" $HostDir
if (Test-Path "$RepoRoot\src\corehost\cmake\$Rid\cli\$Configuration\corehost.pdb")
if (Test-Path "$RepoRoot\src\corehost\cmake\$Rid\cli\$BuildConfiguration\corehost.pdb")
{
cp "$RepoRoot\src\corehost\cmake\$Rid\cli\$Configuration\corehost.pdb" $HostDir
cp "$RepoRoot\src\corehost\cmake\$Rid\cli\$BuildConfiguration\corehost.pdb" $HostDir
}
if (Test-Path "$RepoRoot\src\corehost\cmake\$Rid\cli\dll\$Configuration\clihost.pdb")
if (Test-Path "$RepoRoot\src\corehost\cmake\$Rid\cli\dll\$BuildConfiguration\hostpolicy.pdb")
{
cp "$RepoRoot\src\corehost\cmake\$Rid\cli\dll\$Configuration\clihost.pdb" $HostDir
cp "$RepoRoot\src\corehost\cmake\$Rid\cli\dll\$BuildConfiguration\hostpolicy.pdb" $HostDir
}
} finally {
popd

View file

@ -26,9 +26,9 @@ make
# Publish to artifacts
[ -d "$HOST_DIR" ] || mkdir -p $HOST_DIR
if [[ "$OSNAME" == "osx" ]]; then
COREHOST_LIBNAME=libclihost.dylib
COREHOST_LIBNAME=libhostpolicy.dylib
else
COREHOST_LIBNAME=libclihost.so
COREHOST_LIBNAME=libhostpolicy.so
fi
cp "$REPOROOT/src/corehost/cmake/$RID/cli/corehost" $HOST_DIR
cp "$REPOROOT/src/corehost/cmake/$RID/cli/dll/${COREHOST_LIBNAME}" $HOST_DIR

View file

@ -78,7 +78,7 @@ cp -rec "$RuntimeOutputDir\*" "$OutputDir\bin"
# Deploy the CLR host to the output
cp "$HostDir\corehost.exe" "$OutputDir\bin"
cp "$HostDir\clihost.dll" "$OutputDir\bin"
cp "$HostDir\hostpolicy.dll" "$OutputDir\bin"
# corehostify externally-provided binaries (csc, vbc, etc.)
$BinariesForCoreHost | ForEach-Object {

View file

@ -77,9 +77,9 @@ cp -R $RUNTIME_OUTPUT_DIR/* $OUTPUT_DIR/bin
# Deploy CLR host to the output
if [[ "$OSNAME" == "osx" ]]; then
COREHOST_LIBNAME=libclihost.dylib
COREHOST_LIBNAME=libhostpolicy.dylib
else
COREHOST_LIBNAME=libclihost.so
COREHOST_LIBNAME=libhostpolicy.so
fi
cp "$HOST_DIR/corehost" "$OUTPUT_DIR/bin"
cp "$HOST_DIR/${COREHOST_LIBNAME}" "$OUTPUT_DIR/bin"

View file

@ -34,7 +34,7 @@ namespace Microsoft.DotNet.Cli.Utils
public static readonly string HostExecutableName = "corehost" + ExeSuffix;
public static readonly string[] HostBinaryNames = new string[] {
HostExecutableName,
(RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "clihost" : "libclihost") + DynamicLibSuffix
(RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "hostpolicy" : "libhostpolicy") + DynamicLibSuffix
};
}
}

View file

@ -5,10 +5,13 @@ cmake_minimum_required (VERSION 2.6)
project (corehost)
if(WIN32)
set(CMAKE_CXX_FLAGS_DEBUG "/MTd")
set(CMAKE_CXX_FLAGS_RELEASE "/MT")
add_compile_options($<$<CONFIG:RelWithDebInfo>:/MT>)
add_compile_options($<$<CONFIG:Release>:/MT>)
add_compile_options($<$<CONFIG:Debug>:/MTd>)
endif()
include(setup.cmake)
set (CMAKE_CXX_STANDARD 11)
include_directories(../common)

View file

@ -2,7 +2,15 @@
# Licensed under the MIT license. See LICENSE file in the project root for full license information.
cmake_minimum_required (VERSION 2.6)
project(clihost)
project(hostpolicy)
if(WIN32)
add_compile_options($<$<CONFIG:RelWithDebInfo>:/MD>)
add_compile_options($<$<CONFIG:Release>:/MD>)
add_compile_options($<$<CONFIG:Debug>:/MDd>)
endif()
include(../setup.cmake)
include_directories(../../common)
@ -12,7 +20,7 @@ set(SOURCES
../../common/utils.cpp
../args.cpp
../clihost.cpp
../hostpolicy.cpp
../coreclr.cpp
../deps_resolver.cpp
../servicing_index.cpp)
@ -26,5 +34,5 @@ endif()
add_definitions(-DCOREHOST_MAKE_DLL=1)
add_library(clihost SHARED ${SOURCES})
add_library(hostpolicy SHARED ${SOURCES})

View file

@ -1,4 +1,4 @@
// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
#define LIBHOST_NAME MAKE_LIBNAME("clihost")
#define LIBHOST_NAME MAKE_LIBNAME("hostpolicy")

View file

@ -0,0 +1,37 @@
# Copyright (c) .NET Foundation and contributors. All rights reserved.
# Licensed under the MIT license. See LICENSE file in the project root for full license information.
if(WIN32)
add_definitions(-DWIN32)
add_definitions(-D_WIN32=1)
if(IS_64BIT_BUILD)
add_definitions(-D_WIN64=1)
endif()
add_compile_options($<$<CONFIG:Debug>:-DDEBUG>)
add_compile_options($<$<CONFIG:Debug>:/Od>)
add_compile_options($<$<CONFIG:Debug>:/Gm>)
add_compile_options(/DEBUG)
add_compile_options(/GS)
add_compile_options(/W1)
add_compile_options(/Zc:inline)
add_compile_options(/fp:precise)
add_compile_options(/EHsc)
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /DEBUG")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /INCREMENTAL:NO")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /DEBUG /PDBCOMPRESS")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:1572864")
# Debug build specific flags
set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "/NOVCFEATURE")
# Release build specific flags
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
set(CMAKE_STATIC_LINKER_FLAGS_RELEASE "${CMAKE_STATIC_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
# RelWithDebInfo specific flags
set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} /DEBUG /OPT:REF /OPT:ICF")
set(CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO} /DEBUG /OPT:REF /OPT:ICF")
set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} /DEBUG /OPT:REF /OPT:ICF")
endif()