blob: fc0cf8db75d958cb228c58d403310e2c5afa2dfe [file] [log] [blame]
cmake_minimum_required(VERSION 3.12...3.19)
project(TestSwigSrcOUTPUT_DIR CXX)
include(CTest)
set(CMAKE_CXX_STANDARD 11)
find_package(SWIG REQUIRED)
include(${SWIG_USE_FILE})
set(UseSWIG_MODULE_VERSION 2)
file(REMOVE_RECURSE "${CMAKE_CURRENT_BINARY_DIR}/Foo"
"${CMAKE_CURRENT_BINARY_DIR}/FooSupport"
"${CMAKE_CURRENT_BINARY_DIR}/FooFile"
"${CMAKE_CURRENT_BINARY_DIR}/Bar"
"${CMAKE_CURRENT_BINARY_DIR}/BarSupport"
"${CMAKE_CURRENT_BINARY_DIR}/BarFile")
set_property (SOURCE foo.i PROPERTY COMPILE_OPTIONS -namespace Foo)
set_property (SOURCE foo.i PROPERTY OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/Foo")
set_property (SOURCE foo.i PROPERTY CPLUSPLUS ON)
set_property (SOURCE bar.i PROPERTY COMPILE_OPTIONS -namespace Bar)
set_property (SOURCE bar.i PROPERTY OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/Bar")
set_property (SOURCE bar.i PROPERTY CPLUSPLUS ON)
swig_add_library(outdir_test LANGUAGE csharp SOURCES foo.i bar.i cs.cpp
OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/NotUsed1"
OUTFILE_DIR "${CMAKE_CURRENT_BINARY_DIR}/NotUsed2")
target_include_directories(outdir_test PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}")
set_property(TARGET outdir_test PROPERTY USE_TARGET_INCLUDE_DIRECTORIES ON)
get_target_property(SUPPORT_FILES_DIRS outdir_test SWIG_SUPPORT_FILES_DIRECTORY)
add_test(NAME SwigSrcOUTPUT_DIR COMMAND "${CMAKE_COMMAND}" "-DBASE_DIRECTORY=${CMAKE_CURRENT_BINARY_DIR}" "-DSUPPORT_FILES_DIRECTORY=${SUPPORT_FILES_DIRS}" -P "${CMAKE_CURRENT_SOURCE_DIR}/ValidateSupportFiles.cmake")
set_property (SOURCE foo.i PROPERTY OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/FooSupport")
set_property (SOURCE foo.i PROPERTY OUTFILE_DIR "${CMAKE_CURRENT_BINARY_DIR}/FooFile")
set_property (SOURCE bar.i PROPERTY OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/BarSupport")
set_property (SOURCE bar.i PROPERTY OUTFILE_DIR "${CMAKE_CURRENT_BINARY_DIR}/BarFile")
swig_add_library(outfiledir_test LANGUAGE csharp SOURCES foo.i bar.i cs.cpp
OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/NotUsed1"
OUTFILE_DIR "${CMAKE_CURRENT_BINARY_DIR}/NotUsed2")
target_include_directories(outfiledir_test PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}")
set_property(TARGET outfiledir_test PROPERTY USE_TARGET_INCLUDE_DIRECTORIES ON)
get_target_property(SUPPORT_FILES_DIRS outfiledir_test SWIG_SUPPORT_FILES_DIRECTORY)
add_test(NAME SwigSrcOUTFILE_DIR COMMAND "${CMAKE_COMMAND}" "-DBASE_DIRECTORY=${CMAKE_CURRENT_BINARY_DIR}" "-DSUPPORT_FILES_DIRECTORY=${SUPPORT_FILES_DIRS}" -DOUTFILE_DIR=ON -P "${CMAKE_CURRENT_SOURCE_DIR}/ValidateSupportFiles.cmake")