summaryrefslogtreecommitdiff
path: root/src/vm/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/vm/CMakeLists.txt')
-rw-r--r--src/vm/CMakeLists.txt467
1 files changed, 467 insertions, 0 deletions
diff --git a/src/vm/CMakeLists.txt b/src/vm/CMakeLists.txt
new file mode 100644
index 0000000000..6f17a90c1f
--- /dev/null
+++ b/src/vm/CMakeLists.txt
@@ -0,0 +1,467 @@
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+# Needed due to the cmunged files being in the binary folders, the set(CMAKE_INCLUDE_CURRENT_DIR ON) is not enough
+include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR})
+
+include_directories(${CLR_DIR}/src/gc)
+
+include_directories(${ARCH_SOURCES_DIR})
+
+add_definitions(-DFEATURE_LEAVE_RUNTIME_HOLDER=1)
+
+add_definitions(-DUNICODE)
+add_definitions(-D_UNICODE)
+
+
+if(CMAKE_CONFIGURATION_TYPES) # multi-configuration generator?
+ 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)
+
+if(CLR_CMAKE_PLATFORM_UNIX)
+ add_compile_options(-fPIC)
+endif(CLR_CMAKE_PLATFORM_UNIX)
+
+if(FEATURE_GDBJIT)
+ set(VM_SOURCES_GDBJIT
+ gdbjit.cpp
+ )
+ add_definitions(-DFEATURE_GDBJIT)
+endif(FEATURE_GDBJIT)
+
+set(VM_SOURCES_DAC_AND_WKS_COMMON
+ appdomain.cpp
+ array.cpp
+ assembly.cpp
+ baseassemblyspec.cpp
+ binder.cpp
+ ceeload.cpp
+ class.cpp
+ classhash.cpp
+ clsload.cpp
+ codeman.cpp
+ comdelegate.cpp
+ contractimpl.cpp
+ coreassemblyspec.cpp
+ corebindresult.cpp
+ corhost.cpp
+ crst.cpp
+ debugdebugger.cpp
+ debughelp.cpp
+ debuginfostore.cpp
+ decodemd.cpp
+ disassembler.cpp
+ dllimport.cpp
+ domainfile.cpp
+ dynamicmethod.cpp
+ ecall.cpp
+ eedbginterfaceimpl.cpp
+ eehash.cpp
+ eetwain.cpp
+ encee.cpp
+ excep.cpp
+ exstate.cpp
+ field.cpp
+ formattype.cpp
+ fptrstubs.cpp
+ frames.cpp
+ genericdict.cpp
+ generics.cpp
+ hash.cpp
+ hillclimbing.cpp
+ ilstubcache.cpp
+ ilstubresolver.cpp
+ inlinetracking.cpp
+ instmethhash.cpp
+ jitinterface.cpp
+ loaderallocator.cpp
+ memberload.cpp
+ method.cpp
+ methodimpl.cpp
+ methoditer.cpp
+ methodtable.cpp
+ object.cpp
+ pefile.cpp
+ peimage.cpp
+ peimagelayout.cpp
+ perfmap.cpp
+ perfinfo.cpp
+ precode.cpp
+ prestub.cpp
+ rejit.cpp
+ securitydescriptor.cpp
+ securitydescriptorassembly.cpp
+ sigformat.cpp
+ siginfo.cpp
+ stackwalk.cpp
+ stublink.cpp
+ stubmgr.cpp
+ syncblk.cpp
+ threadpoolrequest.cpp
+ threads.cpp
+ threadstatics.cpp
+ typectxt.cpp
+ typedesc.cpp
+ typehandle.cpp
+ typehash.cpp
+ typestring.cpp
+ util.cpp
+ vars.cpp
+ versionresilienthashcode.cpp
+ virtualcallstub.cpp
+ win32threadpool.cpp
+ zapsig.cpp
+ ${VM_SOURCES_GDBJIT}
+)
+
+if(FEATURE_READYTORUN)
+ list(APPEND VM_SOURCES_DAC_AND_WKS_COMMON
+ readytoruninfo.cpp
+ )
+endif(FEATURE_READYTORUN)
+
+set(VM_SOURCES_DAC
+ ${VM_SOURCES_DAC_AND_WKS_COMMON}
+ contexts.cpp
+ threaddebugblockinginfo.cpp
+)
+
+set(VM_SOURCES_WKS
+ ${VM_SOURCES_DAC_AND_WKS_COMMON}
+ appdomainnative.cpp
+ appdomainstack.cpp
+ assemblyname.cpp
+ assemblynative.cpp
+ assemblyspec.cpp
+ cachelinealloc.cpp
+ callhelpers.cpp
+ ceemain.cpp
+ clrex.cpp
+ clrprivbinderutil.cpp
+ clrvarargs.cpp
+ comdatetime.cpp
+ comdependenthandle.cpp
+ comdynamic.cpp
+ comisolatedstorage.cpp
+ commemoryfailpoint.cpp
+ commodule.cpp
+ compatibilityswitch.cpp
+ comsynchronizable.cpp
+ comthreadpool.cpp
+ comutilnative.cpp
+ comwaithandle.cpp
+ constrainedexecutionregion.cpp
+ coverage.cpp
+ customattribute.cpp
+ custommarshalerinfo.cpp
+ dllimportcallback.cpp
+ eeconfig.cpp
+ eecontract.cpp
+ eemessagebox.cpp
+ eepolicy.cpp
+ eetoprofinterfaceimpl.cpp
+ eventstore.cpp
+ fcall.cpp
+ fieldmarshaler.cpp
+ finalizerthread.cpp
+ frameworkexceptionloader.cpp
+ gccover.cpp
+ gcenv.ee.cpp
+ gcenv.os.cpp
+ gchelpers.cpp
+ genmeth.cpp
+ hosting.cpp
+ ibclogger.cpp
+ ilmarshalers.cpp
+ interopconverter.cpp
+ interoputil.cpp
+ interpreter.cpp
+ invokeutil.cpp
+ jithelpers.cpp
+ listlock.cpp
+ managedmdimport.cpp
+ marshalnative.cpp
+ marvin32.cpp
+ mdaassistants.cpp
+ methodtablebuilder.cpp
+ mlinfo.cpp
+ mscorlib.cpp # <DisablePrecompiledHeaders>true</DisablePrecompiledHeaders>
+ multicorejit.cpp # Condition="'$(FeatureMulticoreJIT)' == 'true'
+ multicorejitplayer.cpp # Condition="'$(FeatureMulticoreJIT)' == 'true'
+ nativeeventsource.cpp
+ nativeoverlapped.cpp
+ objectlist.cpp
+ olevariant.cpp
+ pefingerprint.cpp
+ pendingload.cpp
+ perfdefaults.cpp
+ profattach.cpp
+ profattachclient.cpp
+ profattachserver.cpp
+ profdetach.cpp
+ profilermetadataemitvalidator.cpp
+ profilingenumerators.cpp
+ profilinghelper.cpp
+ proftoeeinterfaceimpl.cpp
+ qcall.cpp
+ reflectclasswriter.cpp
+ reflectioninvocation.cpp
+ runtimehandles.cpp
+ safehandle.cpp
+ security.cpp
+ securityattributes.cpp
+ securitydeclarative.cpp
+ securitydeclarativecache.cpp
+ securitydescriptorappdomain.cpp
+ securityhostprotection.cpp
+ securitymeta.cpp
+ securitypolicy.cpp
+ securitytransparentassembly.cpp
+ sha1.cpp
+ simplerwlock.cpp
+ sourceline.cpp
+ spinlock.cpp
+ stackingallocator.cpp
+ stringliteralmap.cpp
+ stubcache.cpp
+ stubgen.cpp
+ stubhelpers.cpp
+ syncclean.cpp
+ synch.cpp
+ synchronizationcontextnative.cpp
+ testhookmgr.cpp
+ threaddebugblockinginfo.cpp
+ threadsuspend.cpp
+ typeparse.cpp
+ verifier.cpp
+ weakreferencenative.cpp
+)
+
+if(FEATURE_EVENT_TRACE)
+ list(APPEND VM_SOURCES_WKS
+ eventtrace.cpp
+ )
+endif(FEATURE_EVENT_TRACE)
+
+if(WIN32)
+
+set(VM_SOURCES_DAC_AND_WKS_WIN32
+ clrtocomcall.cpp
+ rcwwalker.cpp
+ winrttypenameconverter.cpp
+)
+
+list(APPEND VM_SOURCES_WKS
+ ${VM_SOURCES_DAC_AND_WKS_WIN32}
+ # These should not be included for Linux
+ appxutil.cpp
+ assemblynativeresource.cpp
+ classcompat.cpp
+ classfactory.cpp
+ clrprivbinderwinrt.cpp
+ clrprivtypecachewinrt.cpp
+ comcache.cpp
+ comcallablewrapper.cpp
+ comconnectionpoints.cpp
+ cominterfacemarshaler.cpp
+ commtmemberinfomap.cpp
+ comtoclrcall.cpp
+ dispatchinfo.cpp
+ dispparammarshaler.cpp
+ dwreport.cpp
+ eventreporter.cpp
+ extensibleclassfactory.cpp
+ microsoft.comservices_i.c
+ mngstdinterfaces.cpp
+ notifyexternals.cpp
+ olecontexthelpers.cpp
+ rcwrefcache.cpp
+ rtlfunctions.cpp
+ runtimecallablewrapper.cpp
+ securityprincipal.cpp
+ stacksampler.cpp
+ stdinterfaces.cpp
+ stdinterfaces_wrapper.cpp
+ winrthelpers.cpp
+)
+
+list(APPEND VM_SOURCES_DAC
+ ${VM_SOURCES_DAC_AND_WKS_WIN32}
+ # These should not be included for Linux
+ clrprivbinderwinrt.cpp
+ clrprivtypecachewinrt.cpp
+)
+
+if(CLR_CMAKE_TARGET_ARCH_AMD64)
+ set(VM_SOURCES_WKS_ARCH_ASM
+ ${ARCH_SOURCES_DIR}/AsmHelpers.asm
+ ${ARCH_SOURCES_DIR}/CallDescrWorkerAMD64.asm
+ ${ARCH_SOURCES_DIR}/ComCallPreStub.asm
+ ${ARCH_SOURCES_DIR}/CrtHelpers.asm
+ ${ARCH_SOURCES_DIR}/GenericComCallStubs.asm
+ ${ARCH_SOURCES_DIR}/GenericComPlusCallStubs.asm
+ ${ARCH_SOURCES_DIR}/getstate.asm
+ ${ARCH_SOURCES_DIR}/InstantiatingStub.asm
+ ${ARCH_SOURCES_DIR}/JitHelpers_Fast.asm
+ ${ARCH_SOURCES_DIR}/JitHelpers_FastWriteBarriers.asm
+ ${ARCH_SOURCES_DIR}/JitHelpers_InlineGetAppDomain.asm
+ ${ARCH_SOURCES_DIR}/JitHelpers_InlineGetThread.asm
+ ${ARCH_SOURCES_DIR}/JitHelpers_Slow.asm
+ ${ARCH_SOURCES_DIR}/PInvokeStubs.asm
+ ${ARCH_SOURCES_DIR}/RedirectedHandledJITCase.asm
+ ${ARCH_SOURCES_DIR}/ThePreStubAMD64.asm
+ ${ARCH_SOURCES_DIR}/ExternalMethodFixupThunk.asm
+ ${ARCH_SOURCES_DIR}/TlsGetters.asm # Condition="'$(FeatureImplicitTls)' != 'true'
+ ${ARCH_SOURCES_DIR}/UMThunkStub.asm
+ ${ARCH_SOURCES_DIR}/VirtualCallStubAMD64.asm
+ )
+elseif(CLR_CMAKE_TARGET_ARCH_I386)
+ set(VM_SOURCES_WKS_ARCH_ASM
+ ${ARCH_SOURCES_DIR}/RedirectedHandledJITCase.asm
+ ${ARCH_SOURCES_DIR}/asmhelpers.asm
+ ${ARCH_SOURCES_DIR}/fptext.asm
+ ${ARCH_SOURCES_DIR}/gmsasm.asm
+ ${ARCH_SOURCES_DIR}/jithelp.asm
+ )
+elseif(CLR_CMAKE_TARGET_ARCH_ARM)
+ set(VM_SOURCES_WKS_ARCH_ASM
+ ${ARCH_SOURCES_DIR}/asmhelpers.asm
+ ${ARCH_SOURCES_DIR}/CrtHelpers.asm
+ ${ARCH_SOURCES_DIR}/ehhelpers.asm
+ ${ARCH_SOURCES_DIR}/memcpy.asm
+ ${ARCH_SOURCES_DIR}/patchedcode.asm
+ ${ARCH_SOURCES_DIR}/PInvokeStubs.asm
+ )
+elseif(CLR_CMAKE_TARGET_ARCH_ARM64)
+ set(VM_SOURCES_WKS_ARCH_ASM
+ ${ARCH_SOURCES_DIR}/AsmHelpers.asm
+ ${ARCH_SOURCES_DIR}/CallDescrWorkerARM64.asm
+ ${ARCH_SOURCES_DIR}/CrtHelpers.asm
+ ${ARCH_SOURCES_DIR}/PInvokeStubs.asm
+ )
+
+endif()
+
+else(WIN32)
+
+ if(CLR_CMAKE_TARGET_ARCH_AMD64)
+ set(VM_SOURCES_WKS_ARCH_ASM
+ ${ARCH_SOURCES_DIR}/calldescrworkeramd64.S
+ ${ARCH_SOURCES_DIR}/crthelpers.S
+ ${ARCH_SOURCES_DIR}/externalmethodfixupthunk.S
+ ${ARCH_SOURCES_DIR}/getstate.S
+ ${ARCH_SOURCES_DIR}/jithelpers_fast.S
+ ${ARCH_SOURCES_DIR}/jithelpers_fastwritebarriers.S
+ ${ARCH_SOURCES_DIR}/jithelpers_slow.S
+ ${ARCH_SOURCES_DIR}/pinvokestubs.S
+ ${ARCH_SOURCES_DIR}/theprestubamd64.S
+ ${ARCH_SOURCES_DIR}/unixasmhelpers.S
+ ${ARCH_SOURCES_DIR}/umthunkstub.S
+ ${ARCH_SOURCES_DIR}/virtualcallstubamd64.S
+ )
+ elseif(CLR_CMAKE_TARGET_ARCH_ARM)
+ set(VM_SOURCES_WKS_ARCH_ASM
+ ${ARCH_SOURCES_DIR}/asmhelpers.S
+ ${ARCH_SOURCES_DIR}/crthelpers.S
+ ${ARCH_SOURCES_DIR}/ehhelpers.S
+ ${ARCH_SOURCES_DIR}/memcpy.S
+ ${ARCH_SOURCES_DIR}/patchedcode.S
+ ${ARCH_SOURCES_DIR}/pinvokestubs.S
+ )
+ elseif(CLR_CMAKE_TARGET_ARCH_ARM64)
+ set(VM_SOURCES_WKS_ARCH_ASM
+ ${ARCH_SOURCES_DIR}/asmhelpers.S
+ ${ARCH_SOURCES_DIR}/calldescrworkerarm64.S
+ ${ARCH_SOURCES_DIR}/crthelpers.S
+ ${ARCH_SOURCES_DIR}/pinvokestubs.S
+ )
+ endif()
+
+endif(WIN32)
+
+
+if(CLR_CMAKE_TARGET_ARCH_AMD64)
+ set(VM_SOURCES_DAC_AND_WKS_ARCH
+ ${ARCH_SOURCES_DIR}/cgenamd64.cpp
+ ${ARCH_SOURCES_DIR}/excepamd64.cpp
+ ${ARCH_SOURCES_DIR}/gmsamd64.cpp
+ ${ARCH_SOURCES_DIR}/stublinkeramd64.cpp
+ )
+
+ set(VM_SOURCES_WKS_ARCH
+ ${ARCH_SOURCES_DIR}/jithelpersamd64.cpp
+ ${ARCH_SOURCES_DIR}/jitinterfaceamd64.cpp
+ ${ARCH_SOURCES_DIR}/profiler.cpp
+ exceptionhandling.cpp
+ gcinfodecoder.cpp
+ jitinterfacegen.cpp
+ )
+elseif(CLR_CMAKE_TARGET_ARCH_I386)
+ set(VM_SOURCES_DAC_AND_WKS_ARCH
+ gcdecode.cpp
+ exinfo.cpp
+ ${ARCH_SOURCES_DIR}/cgenx86.cpp
+ ${ARCH_SOURCES_DIR}/excepx86.cpp
+ ${ARCH_SOURCES_DIR}/gmsx86.cpp
+ ${ARCH_SOURCES_DIR}/stublinkerx86.cpp
+ )
+
+ set(VM_SOURCES_WKS_ARCH
+ ${ARCH_SOURCES_DIR}/jithelp.asm
+ ${ARCH_SOURCES_DIR}/jitinterfacex86.cpp
+ ${ARCH_SOURCES_DIR}/profiler.cpp
+ )
+elseif(CLR_CMAKE_TARGET_ARCH_ARM)
+ set(VM_SOURCES_DAC_AND_WKS_ARCH
+ ${ARCH_SOURCES_DIR}/exceparm.cpp
+ ${ARCH_SOURCES_DIR}/stubs.cpp
+ ${ARCH_SOURCES_DIR}/armsinglestepper.cpp
+ )
+
+ set(VM_SOURCES_WKS_ARCH
+ ${ARCH_SOURCES_DIR}/jithelpersarm.cpp
+ ${ARCH_SOURCES_DIR}/profiler.cpp
+ exceptionhandling.cpp
+ gcinfodecoder.cpp
+ )
+elseif(CLR_CMAKE_TARGET_ARCH_ARM64)
+ set(VM_SOURCES_DAC_AND_WKS_ARCH
+ ${ARCH_SOURCES_DIR}/cgenarm64.cpp
+ ${ARCH_SOURCES_DIR}/stubs.cpp
+ exceptionhandling.cpp
+ gcinfodecoder.cpp
+ )
+endif()
+
+if(CLR_CMAKE_PLATFORM_UNIX)
+ list(APPEND VM_SOURCES_WKS_ARCH
+ ${ARCH_SOURCES_DIR}/unixstubs.cpp
+ )
+endif(CLR_CMAKE_PLATFORM_UNIX)
+
+set(VM_SOURCES_DAC_ARCH
+ gcinfodecoder.cpp
+ exceptionhandling.cpp
+)
+
+list(APPEND VM_SOURCES_WKS
+ ${VM_SOURCES_WKS_ARCH}
+ ${VM_SOURCES_DAC_AND_WKS_ARCH}
+)
+
+list(APPEND VM_SOURCES_DAC
+ ${VM_SOURCES_DAC_ARCH}
+ ${VM_SOURCES_DAC_AND_WKS_ARCH}
+)
+
+convert_to_absolute_path(VM_SOURCES_WKS ${VM_SOURCES_WKS})
+convert_to_absolute_path(VM_SOURCES_WKS_ARCH_ASM ${VM_SOURCES_WKS_ARCH_ASM})
+convert_to_absolute_path(VM_SOURCES_DAC ${VM_SOURCES_DAC})
+
+add_subdirectory(dac)
+add_subdirectory(wks)