summaryrefslogtreecommitdiff
path: root/src/gc
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 /src/gc
parent63796e5a7ae5076ceb310a2dca89e94e09b5e5f2 (diff)
downloadcoreclr-0dbc3f62bd3ce5184cc27884e3239e3deae3cc9a.tar.gz
coreclr-0dbc3f62bd3ce5184cc27884e3239e3deae3cc9a.tar.bz2
coreclr-0dbc3f62bd3ce5184cc27884e3239e3deae3cc9a.zip
Build the GC as part of its own CMake target (#5932)
Diffstat (limited to 'src/gc')
-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
4 files changed, 51 insertions, 2 deletions
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})