add_custom_target(jit_exports DEPENDS ${JIT_EXPORTS_FILE})
-set(RYUJIT_LINK_LIBRARIES
+set(JIT_LINK_LIBRARIES
utilcodestaticnohost
+)
+
+set(JIT_ARCH_LINK_LIBRARIES
gcinfo
)
if(CLR_CMAKE_PLATFORM_UNIX)
- list(APPEND RYUJIT_LINK_LIBRARIES
+ list(APPEND JIT_LINK_LIBRARIES
mscorrc_debug
coreclrpal
palrt
)
else()
- list(APPEND RYUJIT_LINK_LIBRARIES
+ list(APPEND JIT_LINK_LIBRARIES
${STATIC_MT_CRT_LIB}
${STATIC_MT_VCRT_LIB}
kernel32.lib
)
endif(CLR_CMAKE_PLATFORM_UNIX)
+# Shared function for generating JIT
+function(add_jit jitName)
+ if(WIN32)
+ add_definitions(-DFX_VER_INTERNALNAME_STR=${jitName}.dll)
+ endif(WIN32)
+
+ set_source_files_properties(${JIT_EXPORTS_FILE} PROPERTIES GENERATED TRUE)
+
+ add_library_clr(${jitName}
+ SHARED
+ ${SHARED_LIB_SOURCES}
+ ${JIT_ARCH_SOURCES}
+ )
+
+ target_precompile_header(TARGET ${jitName} HEADER jitpch.h ADDITIONAL_INCLUDE_DIRECTORIES ${JIT_SOURCE_DIR})
+
+ add_dependencies(${jitName} jit_exports)
+
+ set_property(TARGET ${jitName} APPEND_STRING PROPERTY LINK_FLAGS ${JIT_EXPORTS_LINKER_OPTION})
+ set_property(TARGET ${jitName} APPEND_STRING PROPERTY LINK_DEPENDS ${JIT_EXPORTS_FILE})
+
+ target_link_libraries(${jitName}
+ ${JIT_LINK_LIBRARIES}
+ ${JIT_ARCH_LINK_LIBRARIES}
+ )
+
+ # add the install targets
+ install_clr(TARGETS ${jitName})
+endfunction()
+
set(JIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
if (FEATURE_MERGE_JIT_AND_ENGINE)
add_definitions(-D_TARGET_ARM_)
add_definitions(-DARM_SOFTFP)
add_definitions(-DFEATURE_EH_FUNCLETS)
- set(JIT_ARCH_ALTJIT_SOURCES ${JIT_ARM_SOURCES})
+ set(JIT_ARCH_SOURCES ${JIT_ARM_SOURCES})
set(JIT_ARCH_LINK_LIBRARIES gcinfo_arm)
elseif(CLR_CMAKE_PLATFORM_ARCH_AMD64)
remove_definitions(-D_TARGET_AMD64_)
add_definitions(-D_TARGET_ARM64_)
- set(JIT_ARCH_ALTJIT_SOURCES ${JIT_ARM64_SOURCES})
+ set(JIT_ARCH_SOURCES ${JIT_ARM64_SOURCES})
set(JIT_ARCH_LINK_LIBRARIES gcinfo_arm64)
else()
clr_unknown_arch()
endif()
endif(NOT WIN32)
-if(WIN32)
- add_definitions(-DFX_VER_INTERNALNAME_STR=armelnonjit.dll)
-endif(WIN32)
-
-set_source_files_properties(${JIT_EXPORTS_FILE} PROPERTIES GENERATED TRUE)
-
-add_library_clr(armelnonjit
- SHARED
- ${SHARED_LIB_SOURCES}
- ${JIT_ARCH_ALTJIT_SOURCES}
-)
-
-target_precompile_header(TARGET armelnonjit HEADER jitpch.h ADDITIONAL_INCLUDE_DIRECTORIES ${JIT_SOURCE_DIR})
-
-add_dependencies(armelnonjit jit_exports)
-
-set_property(TARGET armelnonjit APPEND_STRING PROPERTY LINK_FLAGS ${JIT_EXPORTS_LINKER_OPTION})
-set_property(TARGET armelnonjit APPEND_STRING PROPERTY LINK_DEPENDS ${JIT_EXPORTS_FILE})
-
-set(RYUJIT_LINK_LIBRARIES
- utilcodestaticnohost
- ${JIT_ARCH_LINK_LIBRARIES}
-)
-
-if(CLR_CMAKE_PLATFORM_UNIX)
- list(APPEND RYUJIT_LINK_LIBRARIES
- mscorrc_debug
- coreclrpal
- palrt
- )
-else()
- list(APPEND RYUJIT_LINK_LIBRARIES
- ${STATIC_MT_CRT_LIB}
- ${STATIC_MT_VCRT_LIB}
- kernel32.lib
- advapi32.lib
- ole32.lib
- oleaut32.lib
- uuid.lib
- user32.lib
- version.lib
- shlwapi.lib
- bcrypt.lib
- crypt32.lib
- RuntimeObject.lib
- )
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
-target_link_libraries(armelnonjit
- ${RYUJIT_LINK_LIBRARIES}
-)
-
-# add the install targets
-install_clr(TARGETS armelnonjit)
+add_jit(armelnonjit)
add_library_clr(clrjit_crossgen ${SOURCES} ${JIT_ARCH_SOURCES})
if(FEATURE_MERGE_JIT_AND_ENGINE)
- target_link_libraries(clrjit_crossgen ${RYUJIT_LINK_LIBRARIES})
+ target_link_libraries(clrjit_crossgen ${JIT_LINK_LIBRARIES} ${JIT_ARCH_LINK_LIBRARIES})
endif(FEATURE_MERGE_JIT_AND_ENGINE)
set_target_properties(clrjit_crossgen PROPERTIES CROSSGEN_COMPONENT TRUE)
target_precompile_header(TARGET clrjit_crossgen HEADER jitpch.h ADDITIONAL_INCLUDE_DIRECTORIES ${JIT_SOURCE_DIR})
remove_definitions(-DFEATURE_SIMD)
remove_definitions(-DFEATURE_HW_INTRINSICS)
add_definitions(-DUNIX_X86_ABI)
- set(JIT_ARCH_ALTJIT_SOURCES ${JIT_I386_SOURCES})
+ set(JIT_ARCH_SOURCES ${JIT_I386_SOURCES})
set(JIT_ARCH_LINK_LIBRARIES gcinfo_linuxx86)
elseif(CLR_CMAKE_PLATFORM_ARCH_AMD64)
add_definitions(-DUNIX_AMD64_ABI)
- set(JIT_ARCH_ALTJIT_SOURCES ${JIT_AMD64_SOURCES})
+ set(JIT_ARCH_SOURCES ${JIT_AMD64_SOURCES})
set(JIT_ARCH_LINK_LIBRARIES gcinfo)
else()
clr_unknown_arch()
endif()
-if(WIN32)
- add_definitions(-DFX_VER_INTERNALNAME_STR=linuxnonjit.dll)
-endif(WIN32)
-
-set_source_files_properties(${JIT_EXPORTS_FILE} PROPERTIES GENERATED TRUE)
-
-add_library_clr(linuxnonjit
- SHARED
- ${SHARED_LIB_SOURCES}
- ${JIT_ARCH_ALTJIT_SOURCES}
-)
-target_precompile_header(TARGET linuxnonjit HEADER jitpch.h ADDITIONAL_INCLUDE_DIRECTORIES ${JIT_SOURCE_DIR})
-
-add_dependencies(linuxnonjit jit_exports)
-
-set_property(TARGET linuxnonjit APPEND_STRING PROPERTY LINK_FLAGS ${JIT_EXPORTS_LINKER_OPTION})
-set_property(TARGET linuxnonjit APPEND_STRING PROPERTY LINK_DEPENDS ${JIT_EXPORTS_FILE})
-
-set(RYUJIT_LINK_LIBRARIES
- utilcodestaticnohost
- ${JIT_ARCH_LINK_LIBRARIES}
-)
-
-if(CLR_CMAKE_PLATFORM_UNIX)
- list(APPEND RYUJIT_LINK_LIBRARIES
- mscorrc_debug
- coreclrpal
- palrt
- )
-else()
- list(APPEND RYUJIT_LINK_LIBRARIES
- ${STATIC_MT_CRT_LIB}
- ${STATIC_MT_VCRT_LIB}
- kernel32.lib
- advapi32.lib
- ole32.lib
- oleaut32.lib
- uuid.lib
- user32.lib
- version.lib
- shlwapi.lib
- bcrypt.lib
- crypt32.lib
- RuntimeObject.lib
- )
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
-target_link_libraries(linuxnonjit
- ${RYUJIT_LINK_LIBRARIES}
-)
-
-# add the install targets
-install_clr(TARGETS linuxnonjit)
+add_jit(linuxonjit)
add_definitions(-DFEATURE_READYTORUN_COMPILER)
endif(FEATURE_READYTORUN)
-if(WIN32)
- add_definitions(-DFX_VER_INTERNALNAME_STR=protojit.dll)
-endif(WIN32)
-
-set_source_files_properties(${JIT_EXPORTS_FILE} PROPERTIES GENERATED TRUE)
-
-add_library_clr(protojit
- SHARED
- ${SHARED_LIB_SOURCES}
- ${JIT_ARCH_SOURCES}
-)
-
-target_precompile_header(TARGET protojit HEADER jitpch.h ADDITIONAL_INCLUDE_DIRECTORIES ${JIT_SOURCE_DIR})
-
-add_dependencies(protojit jit_exports)
-
-set_property(TARGET protojit APPEND_STRING PROPERTY LINK_FLAGS ${JIT_EXPORTS_LINKER_OPTION})
-set_property(TARGET protojit APPEND_STRING PROPERTY LINK_DEPENDS ${JIT_EXPORTS_FILE})
-
-set(RYUJIT_LINK_LIBRARIES
- utilcodestaticnohost
- gcinfo
-)
-
-if(CLR_CMAKE_PLATFORM_UNIX)
- list(APPEND RYUJIT_LINK_LIBRARIES
- mscorrc_debug
- coreclrpal
- palrt
- )
-else()
- list(APPEND RYUJIT_LINK_LIBRARIES
- ${STATIC_MT_CRT_LIB}
- ${STATIC_MT_VCRT_LIB}
- kernel32.lib
- advapi32.lib
- ole32.lib
- oleaut32.lib
- uuid.lib
- user32.lib
- version.lib
- shlwapi.lib
- bcrypt.lib
- crypt32.lib
- RuntimeObject.lib
- )
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
-target_link_libraries(protojit
- ${RYUJIT_LINK_LIBRARIES}
-)
-
-# add the install targets
-install_clr(TARGETS protojit)
+add_jit(protojit)
remove_definitions(-DFEATURE_HW_INTRINSICS)
add_definitions(-D_TARGET_ARM_)
add_definitions(-DFEATURE_EH_FUNCLETS)
- set(JIT_ARCH_ALTJIT_SOURCES ${JIT_ARM_SOURCES})
+ set(JIT_ARCH_SOURCES ${JIT_ARM_SOURCES})
set(JIT_ARCH_LINK_LIBRARIES gcinfo_arm)
elseif(CLR_CMAKE_PLATFORM_ARCH_AMD64)
remove_definitions(-D_TARGET_AMD64_)
add_definitions(-D_TARGET_ARM64_)
- set(JIT_ARCH_ALTJIT_SOURCES ${JIT_ARM64_SOURCES})
+ set(JIT_ARCH_SOURCES ${JIT_ARM64_SOURCES})
set(JIT_ARCH_LINK_LIBRARIES gcinfo_arm64)
else()
clr_unknown_arch()
endif()
endif(NOT WIN32)
-if(WIN32)
- add_definitions(-DFX_VER_INTERNALNAME_STR=protononjit.dll)
-endif(WIN32)
-
-set_source_files_properties(${JIT_EXPORTS_FILE} PROPERTIES GENERATED TRUE)
-
-add_library_clr(protononjit
- SHARED
- ${SHARED_LIB_SOURCES}
- ${JIT_ARCH_ALTJIT_SOURCES}
-)
-
-target_precompile_header(TARGET protononjit HEADER jitpch.h ADDITIONAL_INCLUDE_DIRECTORIES ${JIT_SOURCE_DIR})
-
-add_dependencies(protononjit jit_exports)
-
-set_property(TARGET protononjit APPEND_STRING PROPERTY LINK_FLAGS ${JIT_EXPORTS_LINKER_OPTION})
-set_property(TARGET protononjit APPEND_STRING PROPERTY LINK_DEPENDS ${JIT_EXPORTS_FILE})
-
-set(RYUJIT_LINK_LIBRARIES
- utilcodestaticnohost
- ${JIT_ARCH_LINK_LIBRARIES}
-)
-
-if(CLR_CMAKE_PLATFORM_UNIX)
- list(APPEND RYUJIT_LINK_LIBRARIES
- mscorrc_debug
- coreclrpal
- palrt
- )
-else()
- list(APPEND RYUJIT_LINK_LIBRARIES
- ${STATIC_MT_CRT_LIB}
- ${STATIC_MT_VCRT_LIB}
- kernel32.lib
- advapi32.lib
- ole32.lib
- oleaut32.lib
- uuid.lib
- user32.lib
- version.lib
- shlwapi.lib
- bcrypt.lib
- crypt32.lib
- RuntimeObject.lib
- )
-endif(CLR_CMAKE_PLATFORM_UNIX)
-
-target_link_libraries(protononjit
- ${RYUJIT_LINK_LIBRARIES}
-)
-
-# add the install targets
-install_clr(TARGETS protononjit)
+add_jit(protononjit)
add_definitions(-DFEATURE_READYTORUN_COMPILER)
endif(FEATURE_READYTORUN)
-if(WIN32)
- add_definitions(-DFX_VER_INTERNALNAME_STR=clrjit.dll)
-endif(WIN32)
-
-set_source_files_properties(${JIT_EXPORTS_FILE} PROPERTIES GENERATED TRUE)
-
-add_library_clr(clrjit
- SHARED
- ${SHARED_LIB_SOURCES}
- ${JIT_ARCH_SOURCES}
-)
-
-target_precompile_header(TARGET clrjit HEADER jitpch.h ADDITIONAL_INCLUDE_DIRECTORIES ${JIT_SOURCE_DIR})
-
-add_dependencies(clrjit jit_exports)
-
-set_property(TARGET clrjit APPEND_STRING PROPERTY LINK_FLAGS ${JIT_EXPORTS_LINKER_OPTION})
-set_property(TARGET clrjit APPEND_STRING PROPERTY LINK_DEPENDS ${JIT_EXPORTS_FILE})
-
-target_link_libraries(clrjit
- ${RYUJIT_LINK_LIBRARIES}
-)
+add_jit(clrjit)
# add the install targets
-install_clr(TARGETS clrjit)
install_clr(TARGETS clrjit DESTINATION sharedFramework SKIP_STRIP)
# Enable profile guided optimization