summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Koritzinsky <jekoritz@microsoft.com>2019-04-09 15:21:43 -0700
committerJeremy Koritzinsky <jekoritz@microsoft.com>2019-04-11 10:20:32 -0700
commit2581b446f6182e9f362d6d760c8b3b102a7603a8 (patch)
treedc81fefad5ec4a935afca3e27f95c8b9664d03fb
parent449285b8b7ccc7158038e5ca3e6cfe11a0d7cc29 (diff)
downloadcoreclr-2581b446f6182e9f362d6d760c8b3b102a7603a8.tar.gz
coreclr-2581b446f6182e9f362d6d760c8b3b102a7603a8.tar.bz2
coreclr-2581b446f6182e9f362d6d760c8b3b102a7603a8.zip
Fix CMake warning about clrjit.exports.in file when using Ninja generator. Make generation of clrjit.exports.in not break incremental "install". Only write clrjit.exports.in when inputs change.
-rw-r--r--functions.cmake12
-rw-r--r--src/jit/CMakeLists.txt17
2 files changed, 15 insertions, 14 deletions
diff --git a/functions.cmake b/functions.cmake
index d868445910..1d97a9eee5 100644
--- a/functions.cmake
+++ b/functions.cmake
@@ -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}
diff --git a/src/jit/CMakeLists.txt b/src/jit/CMakeLists.txt
index 013b8974ed..0977fc1ba1 100644
--- a/src/jit/CMakeLists.txt
+++ b/src/jit/CMakeLists.txt
@@ -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})