summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorSean Gillespie <segilles@microsoft.com>2017-08-22 10:20:36 -0700
committerGitHub <noreply@github.com>2017-08-22 10:20:36 -0700
commit8acf6c9f7e33b1bfe77205cd2e61f2c60e8c00ce (patch)
tree5f7e55f04b5182a6ef1bd537ef76accd5a494782 /CMakeLists.txt
parent2766385624a9c5b73d32bed85519c044447701ff (diff)
downloadcoreclr-8acf6c9f7e33b1bfe77205cd2e61f2c60e8c00ce.tar.gz
coreclr-8acf6c9f7e33b1bfe77205cd2e61f2c60e8c00ce.tar.bz2
coreclr-8acf6c9f7e33b1bfe77205cd2e61f2c60e8c00ce.zip
[Local GC] Enable building the GC as a shared library (#13137)
* [Local GC] Build the GC using system headers * Disable features to get the GC to build * Get rid of the separate 'GC PAL' build * Remove unused stuff * Don't build gcenv.os.cpp when linking in a standalone gc * Stub out CPUGroupInfo and NumaNodeInfo * Stub out IsGCThread and friends * Build the GC as a shared library :tada: * Build, link, and run! :tada: * Fix standalone GC build break * Fixes where the GC's MethodTable and VM's MethodTable classes disagree * Integrate a standalone GC into the CoreCLR build system (so it gets copied to the output folder). Re-enable some ifdef-ed out includes that are required for a non-standalone build of the GC. * Bring changes to Unix and fix the Unix build. Implement some compiler intrinsic wrappers and alignment functions expected by the GC. * Fix the Windows build * 1. Code review feedback: use standard types for BitScanForward and BitScanForward64 2. Delete FEATURE_COM stuff from the build system, not needed for this PR 3. Fix the Unix build * Fix the Windows x86 build - the _BitScanForward64 intrinsic is not available when targeting 32-bit platforms * Remove a number of things from gcenv.base.h that are not used * Remove a linker workaround now that we are not linking a standalone GC into the runtime * Remove dead code, make the lack of GC_PROFILING for standalone gc not break profiling on the non-standalone build * Code review feedback - use add_library_clr and other cmake-related fixes * Fix include indentation * Remove some extraneous parameters to cmake functions (cmake is remarkably lenient...)
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt19
1 files changed, 8 insertions, 11 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 38461acaee..9e1d16dffb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -575,6 +575,13 @@ if(WIN32)
add_compile_options(/Zl) # omit default library name in .OBJ
endif(WIN32)
+#--------------------------------
+# Definition directives
+# - all clr specific compile definitions should be included in this file
+# - all clr specific feature variable should also be added in this file
+#----------------------------------
+include(clrdefinitions.cmake)
+
#-------------------------------------
# Include directory directives
#-------------------------------------
@@ -584,10 +591,7 @@ include_directories("bin/obj")
if(FEATURE_STANDALONE_GC)
add_definitions(-DFEATURE_STANDALONE_GC)
-
- if(CLR_CMAKE_PLATFORM_UNIX)
- add_subdirectory(src/gc/unix)
- endif(CLR_CMAKE_PLATFORM_UNIX)
+ add_subdirectory(src/gc)
endif(FEATURE_STANDALONE_GC)
if(FEATURE_STANDALONE_GC_ONLY)
@@ -600,13 +604,6 @@ if (CLR_CMAKE_PLATFORM_UNIX)
include_directories("src/pal/src/safecrt")
endif (CLR_CMAKE_PLATFORM_UNIX)
-#--------------------------------
-# Definition directives
-# - all clr specific compile definitions should be included in this file
-# - all clr specific feature variable should also be added in this file
-#----------------------------------
-include(clrdefinitions.cmake)
-
# Microsoft.Dotnet.BuildTools.Coreclr version
set(BuildToolsVersion "1.0.4-prerelease")
set(BuildToolsDir "${CLR_DIR}/packages/Microsoft.DotNet.BuildTools.CoreCLR/${BuildToolsVersion}")