diff --git a/CopyHeaders.cmake b/CopyHeaders.cmake new file mode 100644 index 000000000..150b3922a --- /dev/null +++ b/CopyHeaders.cmake @@ -0,0 +1,21 @@ +execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${BASE_DIR}/tmp_gen/ParserKeywords.cpp + ${BASE_DIR}/ParserKeywords.cpp) + +execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${BASE_DIR}/tmp_gen/inlinekw.cpp + ${BASE_DIR}/inlinekw.cpp) + +execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${BASE_DIR}/tmp_gen/include/opm/parser/eclipse/Parser/ParserKeywords.hpp + ${BASE_DIR}/include/opm/parser/eclipse/Parser/ParserKeywords.hpp) + + +file(GLOB HDRS ${BASE_DIR}/tmp_gen/include/opm/parser/eclipse/Parser/ParserKeywords/*.hpp) + +foreach(HDR ${HDRS}) + file(RELATIVE_PATH hdr ${BASE_DIR}/tmp_gen/include/opm/parser/eclipse/Parser/ParserKeywords ${HDR}) + execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${HDR} + ${BASE_DIR}/include/opm/parser/eclipse/Parser/ParserKeywords/${hdr}) +endforeach() diff --git a/GenerateKeywords.cmake b/GenerateKeywords.cmake index 67e6fc229..c45abd8c6 100644 --- a/GenerateKeywords.cmake +++ b/GenerateKeywords.cmake @@ -38,11 +38,17 @@ configure_file(src/opm/parser/eclipse/keyword_list.argv.in keyword_list.argv) # Generate keyword source add_custom_command( - OUTPUT ${PROJECT_BINARY_DIR}/ParserKeywords.cpp ${PROJECT_BINARY_DIR}/inlinekw.cpp + OUTPUT ${PROJECT_BINARY_DIR}/tmp_gen/ParserKeywords.cpp ${PROJECT_BINARY_DIR}/tmp_gen/inlinekw.cpp COMMAND genkw keyword_list.argv - ${PROJECT_BINARY_DIR}/ParserKeywords.cpp - ${PROJECT_BINARY_DIR}/include/ + ${PROJECT_BINARY_DIR}/tmp_gen/ParserKeywords.cpp + ${PROJECT_BINARY_DIR}/tmp_gen/include/ opm/parser/eclipse/Parser/ParserKeywords - ${PROJECT_BINARY_DIR}/inlinekw.cpp + ${PROJECT_BINARY_DIR}/tmp_gen/inlinekw.cpp DEPENDS genkw ${keyword_files} src/opm/parser/eclipse/share/keywords/keyword_list.cmake ) + +# To avoid some rebuilds +add_custom_command(OUTPUT ParserKeywords.cpp inlinekw.cpp + DEPENDS ${PROJECT_BINARY_DIR}/tmp_gen/ParserKeywords.cpp + COMMAND ${CMAKE_COMMAND} -DBASE_DIR=${PROJECT_BINARY_DIR} + -P ${PROJECT_SOURCE_DIR}/CopyHeaders.cmake)