Skip to content

Commit 4e22abe

Browse files
committed
cmake: rework swig
1 parent 0ce6f88 commit 4e22abe

File tree

3 files changed

+56
-31
lines changed

3 files changed

+56
-31
lines changed

cmake/CMakeLists.txt.swig

-18
This file was deleted.

cmake/SWIG.CMakeLists.txt.in

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
cmake_minimum_required(VERSION 3.5)
2+
3+
project(SWIG NONE)
4+
5+
include(ExternalProject)
6+
7+
ExternalProject_Add(SWIG_project
8+
TMP_DIR "@CMAKE_CURRENT_BINARY_DIR@/${PROJECT_NAME}/tmp"
9+
STAMP_DIR "@CMAKE_CURRENT_BINARY_DIR@/${PROJECT_NAME}/stamp"
10+
DOWNLOAD_DIR "@CMAKE_CURRENT_BINARY_DIR@/${PROJECT_NAME}/download"
11+
SOURCE_DIR "@CMAKE_CURRENT_BINARY_DIR@/${PROJECT_NAME}/source"
12+
BUILD_IN_SOURCE 1
13+
14+
URL "http://prdownloads.sourceforge.net/swig/swigwin-4.3.0.zip"
15+
LOG_DOWNLOAD TRUE
16+
17+
UPDATE_COMMAND ""
18+
LOG_UPDATE TRUE
19+
20+
PATCH_COMMAND ""
21+
LOG_PATCH TRUE
22+
23+
CONFIGURE_COMMAND ""
24+
LOG_CONFIGURE TRUE
25+
26+
BUILD_COMMAND ""
27+
LOG_BUILD TRUE
28+
29+
INSTALL_COMMAND ""
30+
LOG_INSTALL TRUE
31+
32+
TEST_COMMAND ""
33+
LOG_TEST TRUE
34+
)

cmake/swig.cmake

+22-13
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,30 @@
1-
message(STATUS "Getting SWIG: ...")
2-
31
# Download and unpack swig at configure time
4-
configure_file(${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt.swig swig-download/CMakeLists.txt)
5-
execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" .
2+
message(CHECK_START "Fetching SWIG")
3+
list(APPEND CMAKE_MESSAGE_INDENT " ")
4+
configure_file(
5+
${CMAKE_CURRENT_LIST_DIR}/SWIG.CMakeLists.txt.in
6+
${CMAKE_CURRENT_BINARY_DIR}/SWIG/CMakeLists.txt
7+
@ONLY
8+
)
9+
10+
execute_process(
11+
COMMAND ${CMAKE_COMMAND} -H. -Bproject_build -G "${CMAKE_GENERATOR}"
612
RESULT_VARIABLE result
7-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/swig-download )
13+
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/SWIG)
814
if(result)
9-
message(FATAL_ERROR "CMake step for swig failed: ${result}")
15+
message(FATAL_ERROR "CMake step for SWIG failed: ${result}")
1016
endif()
11-
execute_process(COMMAND ${CMAKE_COMMAND} --build .
17+
18+
execute_process(
19+
COMMAND ${CMAKE_COMMAND} --build project_build --config Release
1220
RESULT_VARIABLE result
13-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/swig-download )
21+
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/SWIG)
1422
if(result)
15-
message(FATAL_ERROR "Build step for swig failed: ${result}")
23+
message(FATAL_ERROR "Build step for SWIG failed: ${result}")
1624
endif()
1725

18-
# Define SWIG_EXECUTABLE (used as "hint" by FindSWIG)
19-
set(SWIG_EXECUTABLE ${CMAKE_BINARY_DIR}/swig/swig.exe)
20-
21-
message(STATUS "Getting SWIG: ...DONE")
26+
set(SWIG_EXECUTABLE
27+
${CMAKE_CURRENT_BINARY_DIR}/SWIG/source/swig.exe
28+
CACHE INTERNAL "swig.exe location" FORCE)
29+
list(POP_BACK CMAKE_MESSAGE_INDENT)
30+
message(CHECK_PASS "fetched")

0 commit comments

Comments
 (0)