Skip to content

Commit

Permalink
Add CMAKE add_jit function and remove duplicated code for all JIT (#1292
Browse files Browse the repository at this point in the history
)
  • Loading branch information
xoofx authored and BruceForstall committed Jan 6, 2020
1 parent 3493718 commit 2eb185c
Show file tree
Hide file tree
Showing 7 changed files with 48 additions and 248 deletions.
39 changes: 36 additions & 3 deletions src/coreclr/src/jit/CMakeLists.txt
Expand Up @@ -323,19 +323,22 @@ endif()

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
Expand All @@ -352,6 +355,36 @@ else()
)
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)
Expand Down
59 changes: 3 additions & 56 deletions src/coreclr/src/jit/armelnonjit/CMakeLists.txt
Expand Up @@ -17,12 +17,12 @@ if (CLR_CMAKE_PLATFORM_ARCH_I386)
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()
Expand All @@ -38,57 +38,4 @@ if (NOT WIN32)
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)
2 changes: 1 addition & 1 deletion src/coreclr/src/jit/crossgen/CMakeLists.txt
@@ -1,6 +1,6 @@
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})
58 changes: 3 additions & 55 deletions src/coreclr/src/jit/linuxnonjit/CMakeLists.txt
Expand Up @@ -13,66 +13,14 @@ if (CLR_CMAKE_PLATFORM_ARCH_I386)
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)
55 changes: 1 addition & 54 deletions src/coreclr/src/jit/protojit/CMakeLists.txt
Expand Up @@ -9,57 +9,4 @@ if(FEATURE_READYTORUN)
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)
59 changes: 3 additions & 56 deletions src/coreclr/src/jit/protononjit/CMakeLists.txt
Expand Up @@ -15,12 +15,12 @@ if (CLR_CMAKE_PLATFORM_ARCH_I386)
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()
Expand All @@ -36,57 +36,4 @@ if (NOT WIN32)
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)
24 changes: 1 addition & 23 deletions src/coreclr/src/jit/standalone/CMakeLists.txt
Expand Up @@ -8,31 +8,9 @@ if(FEATURE_READYTORUN)
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
Expand Down

0 comments on commit 2eb185c

Please sign in to comment.