Commit 8444b984 authored by congzhangzh's avatar congzhangzh Committed by Brad King

UseSWIG: Add option to specify swig output file directory

`swig` has two output-related options:

* `-o <outfile>`: Set name of C/C++ output file to <outfile>
* `-outdir <dir>`: Set language-specific files output directory to <dir>

We already have `CMAKE_SWIG_OUTDIR` for the latter.  Add a new
`SWIG_OUTFILE_DIR` option for the former.
parent 4c7de5d3
Pipeline #33394 passed with stage
UseSWIG-SWIG_OUTFILE_DIR
------------------------
* The :module:`UseSWIG` module ``swig_add_source_to_module`` command
learned a new ``SWIG_OUTFILE_DIR`` option to control the output
file location (``swig -o``).
......@@ -36,8 +36,11 @@
#
# CMAKE_SWIG_FLAGS can be used to add special flags to all swig calls.
#
# Another special variable is CMAKE_SWIG_OUTDIR, it allows one to specify
# where to write all the swig generated module (swig -outdir option)
# CMAKE_SWIG_OUTDIR allows one to specify where to write
# the language specific files (swig -outdir option).
#
# SWIG_OUTFILE_DIR allows one to specify where to write the output file
# (swig -o option). If not specified, CMAKE_SWIG_OUTDIR is used.
#
# The name-specific variable SWIG_MODULE_<name>_EXTRA_DEPS may be used to specify extra
# dependencies for the generated modules.
......@@ -142,6 +145,13 @@ macro(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile)
else()
set(swig_outdir ${CMAKE_CURRENT_BINARY_DIR})
endif()
if(SWIG_OUTFILE_DIR)
set(swig_outfile_dir ${SWIG_OUTFILE_DIR})
else()
set(swig_outfile_dir ${swig_outdir})
endif()
if (NOT SWIG_MODULE_${name}_NOPROXY)
SWIG_GET_EXTRA_OUTPUT_FILES(${SWIG_MODULE_${name}_LANGUAGE}
swig_extra_generated_files
......@@ -149,7 +159,7 @@ macro(SWIG_ADD_SOURCE_TO_MODULE name outfiles infile)
"${swig_source_file_fullname}")
endif()
set(swig_generated_file_fullname
"${swig_outdir}/${swig_source_file_name_we}")
"${swig_outfile_dir}/${swig_source_file_name_we}")
# add the language into the name of the file (i.e. TCL_wrap)
# this allows for the same .i file to be wrapped into different languages
string(APPEND swig_generated_file_fullname
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment