summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Gillespie <sean.william.g@gmail.com>2016-06-22 23:40:41 -0700
committerJan Vorlicek <janvorli@microsoft.com>2016-06-23 08:40:41 +0200
commit0dbc3f62bd3ce5184cc27884e3239e3deae3cc9a (patch)
tree82b0a5d2d8eca7bda486aff6a50e4964383a4101
parent63796e5a7ae5076ceb310a2dca89e94e09b5e5f2 (diff)
downloadcoreclr-0dbc3f62bd3ce5184cc27884e3239e3deae3cc9a.tar.gz
coreclr-0dbc3f62bd3ce5184cc27884e3239e3deae3cc9a.tar.bz2
coreclr-0dbc3f62bd3ce5184cc27884e3239e3deae3cc9a.zip
Build the GC as part of its own CMake target (#5932)
-rw-r--r--src/CMakeLists.txt1
-rw-r--r--src/dlls/mscordac/CMakeLists.txt1
-rw-r--r--src/dlls/mscoree/coreclr/CMakeLists.txt1
-rw-r--r--src/gc/CMakeLists.txt46
-rw-r--r--src/gc/dac/CMakeLists.txt2
-rw-r--r--src/gc/env/common.h4
-rw-r--r--src/gc/wks/CMakeLists.txt1
-rw-r--r--src/vm/CMakeLists.txt12
8 files changed, 54 insertions, 14 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 70f436c6c3..d13e8f9a85 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -148,6 +148,7 @@ if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/jit32")
add_subdirectory(jit32)
endif()
+add_subdirectory(gc)
add_subdirectory(vm)
add_subdirectory(md)
add_subdirectory(debug)
diff --git a/src/dlls/mscordac/CMakeLists.txt b/src/dlls/mscordac/CMakeLists.txt
index 8ef0a54432..02bba4a058 100644
--- a/src/dlls/mscordac/CMakeLists.txt
+++ b/src/dlls/mscordac/CMakeLists.txt
@@ -81,6 +81,7 @@ set(COREDAC_LIBRARIES
strongname_dac
utilcode_dac
unwinder_dac
+ gc_dac
${END_LIBRARY_GROUP} # End group of libraries that have circular references
)
diff --git a/src/dlls/mscoree/coreclr/CMakeLists.txt b/src/dlls/mscoree/coreclr/CMakeLists.txt
index a51e841c78..cc14f9cbdc 100644
--- a/src/dlls/mscoree/coreclr/CMakeLists.txt
+++ b/src/dlls/mscoree/coreclr/CMakeLists.txt
@@ -79,6 +79,7 @@ set(CORECLR_LIBRARIES
debug-pal
${LIB_UNWINDER}
cee_wks
+ gc_wks
${END_LIBRARY_GROUP} # End group of libraries that have circular references
mdcompiler_wks
mdruntime_wks
diff --git a/src/gc/CMakeLists.txt b/src/gc/CMakeLists.txt
index 71dd46fee8..61e1ced727 100644
--- a/src/gc/CMakeLists.txt
+++ b/src/gc/CMakeLists.txt
@@ -1 +1,45 @@
-add_subdirectory(sample)
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR})
+include_directories(BEFORE ${CLR_DIR}/src/vm)
+include_directories(BEFORE ${CLR_DIR}/src/vm/${ARCH_SOURCES_DIR})
+
+if(CLR_CMAKE_PLATFORM_UNIX)
+ add_compile_options(-fPIC)
+endif(CLR_CMAKE_PLATFORM_UNIX)
+
+if(CMAKE_CONFIGURATION_TYPES)
+ foreach (Config DEBUG CHECKED)
+ set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS $<$<CONFIG:${Config}>:WRITE_BARRIER_CHECK=1>)
+ endforeach (Config)
+else()
+ if(UPPERCASE_CMAKE_BUILD_TYPE STREQUAL DEBUG OR UPPERCASE_CMAKE_BUILD_TYPE STREQUAL CHECKED)
+ add_definitions(-DWRITE_BARRIER_CHECK=1)
+ endif(UPPERCASE_CMAKE_BUILD_TYPE STREQUAL DEBUG OR UPPERCASE_CMAKE_BUILD_TYPE STREQUAL CHECKED)
+endif(CMAKE_CONFIGURATION_TYPES)
+
+set( GC_SOURCES_DAC_AND_WKS_COMMON
+ gccommon.cpp
+ gcscan.cpp
+ gcsvr.cpp
+ gcwks.cpp
+ handletable.cpp
+ handletablecore.cpp
+ handletablescan.cpp
+ objecthandle.cpp
+ softwarewritewatch.cpp)
+
+set( GC_SOURCES_WKS
+ ${GC_SOURCES_DAC_AND_WKS_COMMON}
+ gceesvr.cpp
+ gceewks.cpp
+ handletablecache.cpp)
+
+set( GC_SOURCES_DAC
+ ${GC_SOURCES_DAC_AND_WKS_COMMON})
+
+convert_to_absolute_path(GC_SOURCES_WKS ${GC_SOURCES_WKS})
+convert_to_absolute_path(GC_SOURCES_DAC ${GC_SOURCES_DAC})
+
+add_subdirectory(wks)
+add_subdirectory(dac)
diff --git a/src/gc/dac/CMakeLists.txt b/src/gc/dac/CMakeLists.txt
new file mode 100644
index 0000000000..1f1c9ebe5c
--- /dev/null
+++ b/src/gc/dac/CMakeLists.txt
@@ -0,0 +1,2 @@
+include(${CLR_DIR}/dac.cmake)
+add_library_clr(gc_dac STATIC ${GC_SOURCES_DAC})
diff --git a/src/gc/env/common.h b/src/gc/env/common.h
index 759d57b687..32c0d93577 100644
--- a/src/gc/env/common.h
+++ b/src/gc/env/common.h
@@ -9,7 +9,9 @@
#pragma once
-#define _CRT_SECURE_NO_WARNINGS
+#ifndef _CRT_SECURE_NO_WARNINGS
+ #define _CRT_SECURE_NO_WARNINGS
+#endif // _CRT_SECURE_NO_WARNINGS
#include <stdint.h>
#include <stddef.h>
diff --git a/src/gc/wks/CMakeLists.txt b/src/gc/wks/CMakeLists.txt
new file mode 100644
index 0000000000..fcb95a385e
--- /dev/null
+++ b/src/gc/wks/CMakeLists.txt
@@ -0,0 +1 @@
+add_library_clr(gc_wks STATIC ${GC_SOURCES_WKS})
diff --git a/src/vm/CMakeLists.txt b/src/vm/CMakeLists.txt
index 8b95b6589d..b24a1509e6 100644
--- a/src/vm/CMakeLists.txt
+++ b/src/vm/CMakeLists.txt
@@ -63,15 +63,8 @@ set(VM_SOURCES_DAC_AND_WKS_COMMON
formattype.cpp
fptrstubs.cpp
frames.cpp
- ../gc/gccommon.cpp
- ../gc/gcscan.cpp
- ../gc/gcsvr.cpp
- ../gc/gcwks.cpp
genericdict.cpp
generics.cpp
- ../gc/handletable.cpp
- ../gc/handletablecore.cpp
- ../gc/handletablescan.cpp
hash.cpp
hillclimbing.cpp
ilstubcache.cpp
@@ -86,7 +79,6 @@ set(VM_SOURCES_DAC_AND_WKS_COMMON
methoditer.cpp
methodtable.cpp
object.cpp
- ../gc/objecthandle.cpp
pefile.cpp
peimage.cpp
peimagelayout.cpp
@@ -99,7 +91,6 @@ set(VM_SOURCES_DAC_AND_WKS_COMMON
securitydescriptorassembly.cpp
sigformat.cpp
siginfo.cpp
- ../gc/softwarewritewatch.cpp
stackwalk.cpp
stublink.cpp
stubmgr.cpp
@@ -177,9 +168,6 @@ set(VM_SOURCES_WKS
gcenv.os.cpp
gchelpers.cpp
genmeth.cpp
- ../gc/gceesvr.cpp
- ../gc/gceewks.cpp
- ../gc/handletablecache.cpp
hosting.cpp
ibclogger.cpp
ilmarshalers.cpp