Avoid recompiling option_parser every time cmake runs.

Switch to `configure_file`, which won't touch the output file unless
the contents change.
This commit is contained in:
Allison Vacanti
2021-03-18 16:07:40 -04:00
parent 52d3dfec8c
commit 8b7a2e86b8
2 changed files with 5 additions and 2 deletions

View File

@@ -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 <string>\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()

1
cmake/FileToString.in Normal file
View File

@@ -0,0 +1 @@
${file_to_string_payload}