forked from dotnet/coreclr
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use CMake's C# support to build DacTableGen instead of manually invok…
…ing csc.exe ourselves. (dotnet#24342) * Use CMake's C# support to build DacTableGen instead of manually invoking csc.exe ourselves. * Fix x86 failures. * Disable DAC generation when building with NMake Makefiles and issue an error since the CMake C# support is VS-only. We don't actually support building with NMake (only configure) so this is ok. * Clean up rest of the macro=1's PR Feedback. * Fix Visual Studio generator matching. * Explicitly specify anycpu32bitpreferred for DacTableGen so the ARM64 build doesn't accidentally make it 64-bit * Fix bad merge
- Loading branch information
1 parent
2e9cd82
commit 4c82068
Showing
24 changed files
with
158 additions
and
210 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,6 @@ | ||
if(WIN32) | ||
if (CMAKE_GENERATOR MATCHES "Visual Studio .*") | ||
add_subdirectory(DacTableGen) | ||
add_subdirectory(Strike) | ||
endif() | ||
add_subdirectory(Strike) | ||
endif(WIN32) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,23 +1,19 @@ | ||
cmake_minimum_required(VERSION 3.8) # This project is only included on Win32 platforms so we can have a higher CMake version requirement since we already require a newer CMake version on Windows for various reasons. | ||
# Quick note: The CMake C# support is using the CSC bundled with the MSBuild that the native build runs on, not the one supplied by the local .NET SDK. | ||
|
||
project(DacTableGen LANGUAGES CSharp) | ||
|
||
set(DACTABLEGEN_SOURCES | ||
cvconst.cs | ||
diautil.cs | ||
main.cs | ||
MapSymbolProvider.cs | ||
) | ||
# DacTableGen doesn't use the defines from the rest of the build tree, so clear all of the compile definitions | ||
set_directory_properties(PROPERTIES COMPILE_DEFINITIONS "") | ||
|
||
# Cmake does not support C# sources so add custom command | ||
# Disable: | ||
# warning CS1668: Invalid search path 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.14.26428\atlmfc\lib\ARM64' specified in 'LIB environment variable' -- 'The system cannot find the path specified. ' | ||
# There are several problems here: (1) the C++ project files are adding non-existent directories to the LIB path, especially for ARM and ARM64, | ||
# (2) This CSC is invoking the desktop .NET Framework CSC, not the buildtools version. | ||
add_custom_target(dactablegen ALL | ||
COMMAND csc.exe /t:exe /platform:anycpu32bitpreferred /r:System.dll /r:DiaLib.dll /nowarn:1668 /out:${CMAKE_CURRENT_BINARY_DIR}/dactablegen.exe ${DACTABLEGEN_SOURCES} | ||
COMMAND ${CMAKE_COMMAND} -E copy DIAlib.dll ${CMAKE_CURRENT_BINARY_DIR} | ||
DEPENDS ${DACTABLEGEN_SOURCES} DIAlib.dll | ||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} | ||
) | ||
set(CMAKE_CSharp_FLAGS "/platform:anycpu32bitpreferred") | ||
add_executable(dactablegen ${DACTABLEGEN_SOURCES}) | ||
|
||
# In order to use dactablegen as an executable target it needs to be imported. | ||
# Target is used in dll/mscoree/coreclr/cmakelists.txt | ||
add_executable(dactablegen_exe IMPORTED GLOBAL) | ||
set_property(TARGET dactablegen_exe PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/dactablegen.exe) | ||
set_target_properties(dactablegen PROPERTIES VS_DOTNET_REFERENCES "System") | ||
set_target_properties(dactablegen PROPERTIES VS_DOTNET_REFERENCE_DIALib ${CMAKE_CURRENT_SOURCE_DIR}/DIALib.dll) |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.