Fix CMake warning about clrjit.exports.in file when using Ninja generator. Make gener...
authorJeremy Koritzinsky <jekoritz@microsoft.com>
Tue, 9 Apr 2019 22:21:43 +0000 (15:21 -0700)
committerJeremy Koritzinsky <jekoritz@microsoft.com>
Thu, 11 Apr 2019 17:20:32 +0000 (10:20 -0700)
functions.cmake
src/jit/CMakeLists.txt

index d868445..1d97a9e 100644 (file)
@@ -86,11 +86,7 @@ function(preprocess_def_file inputFilename outputFilename)
                               PROPERTIES GENERATED TRUE)
 endfunction()
 
-function(generate_exports_file)
-  set(INPUT_LIST ${ARGN})
-  list(GET INPUT_LIST -1 outputFilename)
-  list(REMOVE_AT INPUT_LIST -1)
-
+function(generate_exports_file INPUT_FILE OUTPUT_FILE)
   if(CMAKE_SYSTEM_NAME STREQUAL Darwin)
     set(AWK_SCRIPT generateexportedsymbols.awk)
   else()
@@ -98,9 +94,9 @@ function(generate_exports_file)
   endif(CMAKE_SYSTEM_NAME STREQUAL Darwin)
 
   add_custom_command(
-    OUTPUT ${outputFilename}
-    COMMAND ${AWK} -f ${CMAKE_SOURCE_DIR}/${AWK_SCRIPT} ${INPUT_LIST} >${outputFilename}
-    DEPENDS ${INPUT_LIST} ${CMAKE_SOURCE_DIR}/${AWK_SCRIPT}
+    OUTPUT ${OUTPUT_FILE}
+    COMMAND ${AWK} -f ${CMAKE_SOURCE_DIR}/${AWK_SCRIPT} ${INPUT_FILE} >${OUTPUT_FILE}
+    DEPENDS ${INPUT_FILE} ${CMAKE_SOURCE_DIR}/${AWK_SCRIPT}
     COMMENT "Generating exports file ${outputFilename}"
   )
   set_source_files_properties(${outputFilename}
index 013b897..0977fc1 100644 (file)
@@ -291,6 +291,8 @@ convert_to_absolute_path(JIT_ARM_SOURCES ${JIT_ARM_SOURCES})
 convert_to_absolute_path(JIT_I386_SOURCES ${JIT_I386_SOURCES})
 convert_to_absolute_path(JIT_ARM64_SOURCES ${JIT_ARM64_SOURCES})
 
+set (CLRJIT_EXPORTS ${CMAKE_CURRENT_LIST_DIR}/ClrJit.exports)
+
 if(WIN32)
   add_precompiled_header(jitpch.h ../jitpch.cpp SOURCES)
 
@@ -299,7 +301,7 @@ if(WIN32)
   # massage it into the correct format here to create "ClrJit.exports.def".
   set(JIT_EXPORTS_FILE ${CMAKE_CURRENT_BINARY_DIR}/ClrJit.exports.def)
   set(JIT_EXPORTS_FILE_TEMP ${JIT_EXPORTS_FILE}.txt)
-  file(READ "ClrJit.exports" exports_list)
+  file(READ ${CLRJIT_EXPORTS} exports_list)
   file(WRITE ${JIT_EXPORTS_FILE_TEMP} "LIBRARY CLRJIT\n")
   file(APPEND ${JIT_EXPORTS_FILE_TEMP} "EXPORTS\n")
   file(APPEND ${JIT_EXPORTS_FILE_TEMP} ${exports_list})
@@ -311,11 +313,14 @@ if(WIN32)
   set(SHARED_LIB_SOURCES ${SOURCES} ${JIT_EXPORTS_FILE})
 else()
   set(JIT_EXPORTS_IN_FILE ${CMAKE_CURRENT_BINARY_DIR}/clrjit.exports.in)
-  file(READ "${CMAKE_CURRENT_LIST_DIR}/ClrJit.exports" jit_exports)
-  file(READ "${CMAKE_CURRENT_LIST_DIR}/ClrJit.PAL.exports" pal_exports)
-  file(WRITE ${JIT_EXPORTS_IN_FILE} ${jit_exports})
-  file(APPEND ${JIT_EXPORTS_IN_FILE} "\n")
-  file(APPEND ${JIT_EXPORTS_IN_FILE} ${pal_exports})
+  set (CLRJIT_PAL_EXPORTS ${CMAKE_CURRENT_LIST_DIR}/ClrJit.PAL.exports)
+
+  find_program(CAT cat)
+  add_custom_command(
+    OUTPUT ${JIT_EXPORTS_IN_FILE}
+    COMMAND ${CAT} ${CLRJIT_EXPORTS} ${CLRJIT_PAL_EXPORTS} > ${JIT_EXPORTS_IN_FILE}
+    DEPENDS ${CLRJIT_EXPORTS} ${CLRJIT_PAL_EXPORTS}
+  )
 
   set(JIT_EXPORTS_FILE ${CMAKE_CURRENT_BINARY_DIR}/clrjit.exports)
   generate_exports_file(${JIT_EXPORTS_IN_FILE} ${JIT_EXPORTS_FILE})