diff options
author | Jeremy Koritzinsky <jekoritz@microsoft.com> | 2019-10-07 22:11:15 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-07 22:11:15 +0300 |
commit | c472903e41daa70c7f29dcad5d94e6fde143010e (patch) | |
tree | 4e3ff9640eb0a1882f7675b7939903dbffd1c21b /src/coreclr/clrdefinitions.cmake | |
parent | 364f059f06b834ed0fba99b4a6fbe4617cfc176d (diff) |
Clean up our CMake scripts using features introduced between 3… (dotnet/coreclr#26980)
* Try to remove the CLR_CMAKE_COMPILER weirdness.
* Cleanup phase 1.
Fixes CMake's incremental build, but makes MSBuild complain about it's incremental build possibly not working.
* Drive dac and crossgen-specific defines through target properties.
* First pass of consolidation of singularly nested CMakeLists.txt files.
* Convert metadata libraries to not use leaf folders for dac/runtime/crossgen/dbi variations.
* Clean up some of the non-arm assembly file handling.
* Encapsulate arm/arm64 manual preprocessing and compilation of assembly files into a cmake function preprocess_compile_asm.
* Fix typo.
* Convert usages of add_precompiled_header to target_precompile_header everywhere except the jit.
* Clean up/remove some leaf CMake files that are just simple target creation (where most of the work was done in the parent).
* Remove unused CMakeLists file and folder.
* Clean up coreclr/CMakeLists.txt
* Remove conditions based on CMake version (since we're unifying on CMake 3.14)
* Convert final usages of add_precompiled_header to target_precompile_header and remove add_precompiled_header.
* Handle the AsmConstants.inc inclusion in cee_wks by marking it a header file instead of making a custom target.
* Move from deprecated FindPythonInterp module to FindPython module.
* Remove unused jitpch.cpp
* Fix typo.
* Have get_compile_definitions correctly split out generator expressions for multiple-valued generator expressions.
* preprocess_def_file -> preprocess_file and make it work xplat.
* Fix test build.
* Fix typo in flag.
* Fix resource building on non-windows.
* Fix other linker flag typo I missed.
* Add missing eventing_headers dependency.
* Fix multivalued generator expression.
* Use CMake 3.x features to significantly simplify toolchain.cmake.
* Remove references to LLDB from gen-buildsys-* (these aren't needed since SOS moved out of the repo).
* Remove debugging line
* Check check_pie_supported
* Clean up link flags.
* Fix copy-paste typo
* Cleanup. Change some conditions in configurecompiler to check for MSVC specifically, not Windows.
* Restore the llldb include and library path searching.
* Restore asmconstants_inc custom target.
Commit migrated from https://github.com/dotnet/coreclr/commit/59c7b7e84ab3a74d3939abd0c0f973d2bb9e8a70
Diffstat (limited to 'src/coreclr/clrdefinitions.cmake')
-rw-r--r-- | src/coreclr/clrdefinitions.cmake | 42 |
1 files changed, 29 insertions, 13 deletions
diff --git a/src/coreclr/clrdefinitions.cmake b/src/coreclr/clrdefinitions.cmake index 372b0318b6e..d4da74a7004 100644 --- a/src/coreclr/clrdefinitions.cmake +++ b/src/coreclr/clrdefinitions.cmake @@ -10,6 +10,12 @@ if (PRERELEASE) # add_definitions(-DFEATURE_XXX) endif (PRERELEASE) +add_compile_definitions($<$<BOOL:$<TARGET_PROPERTY:DAC_COMPONENT>>:DACCESS_COMPILE>) +add_compile_definitions($<$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>:CROSSGEN_COMPILE>) +add_compile_definitions($<$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>:CROSS_COMPILE>) +add_compile_definitions($<$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>:FEATURE_NATIVE_IMAGE_GENERATION>) +add_compile_definitions($<$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>:SELF_NO_HOST>) + if (CLR_CMAKE_TARGET_ARCH_AMD64) if (CLR_CMAKE_PLATFORM_UNIX) add_definitions(-DDBG_TARGET_AMD64_UNIX) @@ -73,7 +79,8 @@ endif(CLR_CMAKE_PLATFORM_ALPINE_LINUX) add_definitions(-D_BLD_CLR) add_definitions(-DDEBUGGING_SUPPORTED) -add_definitions(-DPROFILING_SUPPORTED) +add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:DAC_COMPONENT>>>:PROFILING_SUPPORTED>) +add_compile_definitions($<$<BOOL:$<TARGET_PROPERTY:DAC_COMPONENT>>:PROFILING_SUPPORTED_DATA>) if(WIN32) add_definitions(-DWIN32) @@ -85,9 +92,9 @@ if(WIN32) if(CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_I386) # Only enable edit and continue on windows x86 and x64 # exclude Linux, arm & arm64 - add_definitions(-DEnC_SUPPORTED) + add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:EnC_SUPPORTED>) endif(CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_I386) -endif(WIN32) + endif(WIN32) # Features - please keep them alphabetically sorted if(WIN32) @@ -100,7 +107,7 @@ else(WIN32) add_definitions(-DFEATURE_ARRAYSTUB_AS_IL) add_definitions(-DFEATURE_MULTICASTSTUB_AS_IL) endif(WIN32) -add_definitions(-DFEATURE_CODE_VERSIONING) +add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:FEATURE_CODE_VERSIONING>) add_definitions(-DFEATURE_COLLECTIBLE_TYPES) if(WIN32) @@ -121,7 +128,7 @@ if(FEATURE_DBGIPC) endif(FEATURE_DBGIPC) add_definitions(-DFEATURE_DEFAULT_INTERFACES) if(FEATURE_EVENT_TRACE) - add_definitions(-DFEATURE_EVENT_TRACE) + add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:FEATURE_EVENT_TRACE>) add_definitions(-DFEATURE_PERFTRACING) endif(FEATURE_EVENT_TRACE) if(FEATURE_GDBJIT) @@ -148,7 +155,7 @@ if (WIN32 AND (CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_I386 OR CLR_ add_definitions(-DFEATURE_INTEROP_DEBUGGING) endif (WIN32 AND (CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_I386 OR CLR_CMAKE_TARGET_ARCH_ARM64)) if(FEATURE_INTERPRETER) - add_definitions(-DFEATURE_INTERPRETER) + add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:FEATURE_INTERPRETER>) endif(FEATURE_INTERPRETER) add_definitions(-DFEATURE_ISYM_READER) if (CLR_CMAKE_PLATFORM_LINUX OR WIN32) @@ -159,27 +166,36 @@ add_definitions(-DFEATURE_MANAGED_ETW_CHANNELS) if(FEATURE_MERGE_JIT_AND_ENGINE) add_definitions(-DFEATURE_MERGE_JIT_AND_ENGINE) endif(FEATURE_MERGE_JIT_AND_ENGINE) -add_definitions(-DFEATURE_MULTICOREJIT) +add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:FEATURE_MULTICOREJIT>) if(CLR_CMAKE_PLATFORM_UNIX) add_definitions(-DFEATURE_PAL) add_definitions(-DFEATURE_PAL_ANSI) endif(CLR_CMAKE_PLATFORM_UNIX) -if(CLR_CMAKE_PLATFORM_LINUX OR CLR_CMAKE_PLATFORM_FREEBSD) +if(CLR_CMAKE_PLATFORM_LINUX) add_definitions(-DFEATURE_PERFMAP) -endif(CLR_CMAKE_PLATFORM_LINUX OR CLR_CMAKE_PLATFORM_FREEBSD) +endif(CLR_CMAKE_PLATFORM_LINUX) +if(CLR_CMAKE_PLATFORM_FREEBSD) + add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:FEATURE_PERFMAP>) +endif(CLR_CMAKE_PLATFORM_FREEBSD) if(FEATURE_PREJIT) add_definitions(-DFEATURE_PREJIT) +else() + add_compile_definitions($<$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>:FEATURE_PREJIT>) endif(FEATURE_PREJIT) if(WIN32 OR CLR_CMAKE_PLATFORM_LINUX) - add_definitions(-DFEATURE_PROFAPI_ATTACH_DETACH) + add_compile_definitions($<$<AND:$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>,$<NOT:$<BOOL:$<TARGET_PROPERTY:DAC_COMPONENT>>>>:FEATURE_PROFAPI_ATTACH_DETACH>) endif(WIN32 OR CLR_CMAKE_PLATFORM_LINUX) +add_compile_definitions($<$<BOOL:$<TARGET_PROPERTY:DAC_COMPONENT>>:DATA_PROFAPI_ATTACH_DETACH>) + add_definitions(-DFEATURE_READYTORUN) + +add_compile_definitions($<$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>:FEATURE_READYTORUN_COMPILER>) set(FEATURE_READYTORUN 1) if (CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_I386) - add_definitions(-DFEATURE_REJIT) + add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:FEATURE_REJIT>) endif(CLR_CMAKE_TARGET_ARCH_AMD64 OR CLR_CMAKE_TARGET_ARCH_I386) if (CLR_CMAKE_PLATFORM_UNIX OR CLR_CMAKE_TARGET_ARCH_ARM64) @@ -193,7 +209,7 @@ if (FEATURE_ENABLE_NO_ADDRESS_SPACE_RANDOMIZATION) endif(FEATURE_ENABLE_NO_ADDRESS_SPACE_RANDOMIZATION) add_definitions(-DFEATURE_SVR_GC) add_definitions(-DFEATURE_SYMDIFF) -add_definitions(-DFEATURE_TIERED_COMPILATION) +add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:FEATURE_TIERED_COMPILATION>) if (WIN32) add_definitions(-DFEATURE_TYPEEQUIVALENCE) endif(WIN32) @@ -216,7 +232,7 @@ if((CLR_CMAKE_PLATFORM_ARCH_AMD64 OR CLR_CMAKE_PLATFORM_ARCH_ARM64) AND NOT WIN3 endif((CLR_CMAKE_PLATFORM_ARCH_AMD64 OR CLR_CMAKE_PLATFORM_ARCH_ARM64) AND NOT WIN32) if(WIN32) - add_definitions(-DFEATURE_VERSIONING_LOG) + add_compile_definitions($<$<NOT:$<BOOL:$<TARGET_PROPERTY:CROSSGEN_COMPONENT>>>:FEATURE_VERSIONING_LOG>) endif(WIN32) if(NOT CLR_CMAKE_PLATFORM_UNIX) add_definitions(-DFEATURE_WIN32_REGISTRY) |