Add CMAKE add_jit function and remove duplicated code for all JIT (#1292)
authorAlexandre Mutel <alexandre_mutel@live.com>
Mon, 6 Jan 2020 18:26:51 +0000 (19:26 +0100)
committerBruce Forstall <brucefo@microsoft.com>
Mon, 6 Jan 2020 18:26:51 +0000 (10:26 -0800)
src/coreclr/src/jit/CMakeLists.txt
src/coreclr/src/jit/armelnonjit/CMakeLists.txt
src/coreclr/src/jit/crossgen/CMakeLists.txt
src/coreclr/src/jit/linuxnonjit/CMakeLists.txt
src/coreclr/src/jit/protojit/CMakeLists.txt
src/coreclr/src/jit/protononjit/CMakeLists.txt
src/coreclr/src/jit/standalone/CMakeLists.txt

index 95ea336..18a38fd 100644 (file)
@@ -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
@@ -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)
index 714800a..e118abc 100644 (file)
@@ -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()
@@ -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)
index 331556f..b2f4f0a 100644 (file)
@@ -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})
index a86ac1f..40590ad 100644 (file)
@@ -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)
index 3cfe839..981583b 100644 (file)
@@ -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)
index bab6994..3512ce7 100644 (file)
@@ -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()
@@ -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)
index c8f8574..b5cb1bc 100644 (file)
@@ -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