From 63c5a56f38f51c4e1f0226721eae59a9201fed0e Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sun, 24 Apr 2022 12:46:43 -0400 Subject: [PATCH] Fix build logic around generate_auto_job It was being run at configuration time, not build time. --- generate_auto_job | 2 ++ job.sums | 2 +- libqpdf/CMakeLists.txt | 22 ++++++++++++++++++++-- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/generate_auto_job b/generate_auto_job index e5c0f61a..d5626241 100755 --- a/generate_auto_job +++ b/generate_auto_job @@ -154,6 +154,7 @@ class Main: # SOURCES is a list of source files whose contents are used by # this program. If they change, we are out of date. SOURCES = [ + # Keep this list in sync with libqpdf/CMakeLists.txt: auto_job_inputs whoami, 'manual/_ext/qpdf.py', 'job.yml', @@ -164,6 +165,7 @@ class Main: # code, are included in various places by QPDFJob.hh or any of the # implementing QPDFJob*.cc files. DESTS = { + # Keep this list in sync with libqpdf/CMakeLists.txt: auto_job_outputs 'decl': 'libqpdf/qpdf/auto_job_decl.hh', 'init': 'libqpdf/qpdf/auto_job_init.hh', 'help': 'libqpdf/qpdf/auto_job_help.hh', diff --git a/job.sums b/job.sums index 26d242e7..5fe5ff6c 100644 --- a/job.sums +++ b/job.sums @@ -1,5 +1,5 @@ # Generated by generate_auto_job -generate_auto_job 86109dcb8646dca3f50b6ff92d460c62fcd98a5c95d47276b7c1217f4430271e +generate_auto_job 4282688446d9f2a432990eb337e4824e889083b529387b64129b84671ec22328 include/qpdf/auto_job_c_att.hh 4c2b171ea00531db54720bf49a43f8b34481586ae7fb6cbf225099ee42bc5bb4 include/qpdf/auto_job_c_copy_att.hh 50609012bff14fd82f0649185940d617d05d530cdc522185c7f3920a561ccb42 include/qpdf/auto_job_c_enc.hh 28446f3c32153a52afa239ea40503e6cc8ac2c026813526a349e0cd4ae17ddd5 diff --git a/libqpdf/CMakeLists.txt b/libqpdf/CMakeLists.txt index e2dffbd3..fc393a87 100644 --- a/libqpdf/CMakeLists.txt +++ b/libqpdf/CMakeLists.txt @@ -1,8 +1,26 @@ +set(auto_job_inputs + # Keep in sync with SOURCES in generate_auto_job + ../generate_auto_job + ../manual/_ext/qpdf.py + ../job.yml + ../manual/cli.rst) + +set(auto_job_outputs + # Keep in sync with DESTS in generate_auto_job + qpdf/auto_job_decl.hh + qpdf/auto_job_init.hh + qpdf/auto_job_help.hh + qpdf/auto_job_schema.hh + qpdf/auto_job_json_decl.hh + qpdf/auto_job_json_init.hh) if(GENERATE_AUTO_JOB) - execute_process( + add_custom_command( + OUTPUT ${auto_job_outputs} COMMAND ${qpdf_SOURCE_DIR}/generate_auto_job --generate - WORKING_DIRECTORY ${qpdf_SOURCE_DIR}) + WORKING_DIRECTORY ${qpdf_SOURCE_DIR} + DEPENDS ${auto_job_inputs}) + add_custom_target(auto_job_files ALL DEPENDS ${auto_job_outputs}) endif() set(libqpdf_crypto_native