From 96a8890c7d5c8fed7b5c48bc9640c94f8fd66761 Mon Sep 17 00:00:00 2001 From: Ben Webb Date: Fri, 4 Sep 2015 14:33:37 -0700 Subject: [PATCH] FindSWIG: Do not generate erroneous outputs with -noproxy Generally for a module foo, SWIG generates (in Python mode) an extension module _foo.so and a proxy Python module foo.py. However, if -noproxy is specified, instead it builds only foo.so (without the leading underscore). The custom command generated by CMake correctly handles the removal of this underscore when -noproxy is given; however, it still adds foo.py to the expected outputs. This upsets build tools that expect foo.py to be generated (for example, 'make' will run the SWIG command twice). Fix this by removing foo.py from the set of extra generated files when -noproxy is specified. --- Modules/UseSWIG.cmake | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Modules/UseSWIG.cmake b/Modules/UseSWIG.cmake index 96b0b35d0..d757f65f7 100644 --- a/Modules/UseSWIG.cmake +++ b/Modules/UseSWIG.cmake @@ -153,10 +153,12 @@ macro(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile) else() set(swig_outdir ${CMAKE_CURRENT_BINARY_DIR}) endif() - SWIG_GET_EXTRA_OUTPUT_FILES(${SWIG_MODULE_${name}_LANGUAGE} - swig_extra_generated_files - "${swig_outdir}" - "${swig_source_file_fullname}") + if (NOT SWIG_MODULE_${name}_NOPROXY) + SWIG_GET_EXTRA_OUTPUT_FILES(${SWIG_MODULE_${name}_LANGUAGE} + swig_extra_generated_files + "${swig_outdir}" + "${swig_source_file_fullname}") + endif() set(swig_generated_file_fullname "${swig_outdir}/${swig_source_file_name_we}") # add the language into the name of the file (i.e. TCL_wrap)