diff --git a/cmake/FileToString.cmake b/cmake/FileToString.cmake index fd65d6d..3935908 100644 --- a/cmake/FileToString.cmake +++ b/cmake/FileToString.cmake @@ -3,11 +3,13 @@ # Create a C++ file `file_out` that defines a string named `string_name` in # `namespace`, which contains the contents of `file_in`. +# Cache this so we can access it from wherever file_to_string is called. +set(_nvbench_file_to_string_path "${CMAKE_CURRENT_LIST_DIR}/FileToString.in") function(file_to_string file_in file_out namespace string_name) file(READ "${file_in}" file_in_contents) set(file_out_contents) - string(APPEND file_out_contents + string(APPEND file_to_string_payload "#include \n" "namespace ${namespace} {\n" "const std::string ${string_name} =\n" @@ -15,5 +17,5 @@ function(file_to_string file_in file_out namespace string_name) "}\n" ) - file(WRITE "${file_out}" "${file_out_contents}") + configure_file("${_nvbench_file_to_string_path}" "${file_out}") endfunction() diff --git a/cmake/FileToString.in b/cmake/FileToString.in new file mode 100644 index 0000000..aeff339 --- /dev/null +++ b/cmake/FileToString.in @@ -0,0 +1 @@ +${file_to_string_payload}