summaryrefslogtreecommitdiff
path: root/src/gc/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/gc/CMakeLists.txt')
-rw-r--r--src/gc/CMakeLists.txt45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/gc/CMakeLists.txt b/src/gc/CMakeLists.txt
new file mode 100644
index 0000000000..61e1ced727
--- /dev/null
+++ b/src/gc/CMakeLists.txt
@@ -0,0 +1,45 @@
+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)