[script] reworking cmakefile for swig integration
This commit is contained in:
parent
10d52f1f8b
commit
0574efa9b3
|
@ -68,6 +68,7 @@ option(OPENFPGA_WITH_YOSYS "Enable building Yosys" ON)
|
||||||
option(OPENFPGA_WITH_YOSYS_PLUGIN "Enable building Yosys plugin" ON)
|
option(OPENFPGA_WITH_YOSYS_PLUGIN "Enable building Yosys plugin" ON)
|
||||||
option(OPENFPGA_WITH_TEST "Enable testing build for codebase. Once enabled, make test can be run" ON)
|
option(OPENFPGA_WITH_TEST "Enable testing build for codebase. Once enabled, make test can be run" ON)
|
||||||
option(OPENFPGA_WITH_VERSION "Enable version always-up-to-date when building codebase. Disable only when you do not care an accurate version number" ON)
|
option(OPENFPGA_WITH_VERSION "Enable version always-up-to-date when building codebase. Disable only when you do not care an accurate version number" ON)
|
||||||
|
option(OPENFPGA_WITH_SWIG "Enable SWIG interface when building codebase. Disable when you do not need high-level interfaces, such as Tcl/Python" ON)
|
||||||
|
|
||||||
# Options pass on to VTR
|
# Options pass on to VTR
|
||||||
set(WITH_ABC ON CACHE BOOL "Enable building ABC in Verilog-to-Routing")
|
set(WITH_ABC ON CACHE BOOL "Enable building ABC in Verilog-to-Routing")
|
||||||
|
|
|
@ -10,6 +10,32 @@ files_to_dirs(LIB_HEADERS LIB_INCLUDE_DIRS)
|
||||||
#Remove test executable from library
|
#Remove test executable from library
|
||||||
list(REMOVE_ITEM LIB_SOURCES ${EXEC_SOURCE})
|
list(REMOVE_ITEM LIB_SOURCES ${EXEC_SOURCE})
|
||||||
|
|
||||||
|
if (OPENFPGA_WITH_SWIG)
|
||||||
|
#Find SWIG
|
||||||
|
find_package(SWIG 3.0 REQUIRED)
|
||||||
|
if (SWIG_VERSION VERSION_GREATER_EQUAL "4.1.0")
|
||||||
|
message(WARNING "Using SWIG >= ${SWIG_VERSION} -flatstaticmethod flag for python")
|
||||||
|
endif()
|
||||||
|
include(UseSWIG)
|
||||||
|
|
||||||
|
# SWIG library
|
||||||
|
swig_lib(NAME openfpga_swig
|
||||||
|
I_FILE openfpga.i)
|
||||||
|
target_link_libraries(openfpga_swig
|
||||||
|
PRIVATE
|
||||||
|
libarchopenfpga
|
||||||
|
libopenfpgashell
|
||||||
|
libopenfpgautil
|
||||||
|
libfabrickey
|
||||||
|
libfpgabitstream
|
||||||
|
libini
|
||||||
|
libpcf
|
||||||
|
libvtrutil
|
||||||
|
libbusgroup
|
||||||
|
libpugixml
|
||||||
|
libvpr)
|
||||||
|
endif()
|
||||||
|
|
||||||
#Create the library
|
#Create the library
|
||||||
#Static linked library for other C++ libraries
|
#Static linked library for other C++ libraries
|
||||||
add_library(libopenfpga STATIC
|
add_library(libopenfpga STATIC
|
||||||
|
@ -32,28 +58,6 @@ target_link_libraries(libopenfpga
|
||||||
libpugixml
|
libpugixml
|
||||||
libvpr)
|
libvpr)
|
||||||
|
|
||||||
#Dynamic linked library for high-level interfaces, e.g., Tcl
|
|
||||||
add_library(libopenfpga_shared SHARED
|
|
||||||
${LIB_HEADERS}
|
|
||||||
${LIB_SOURCES})
|
|
||||||
target_include_directories(libopenfpga_shared PUBLIC ${LIB_INCLUDE_DIRS})
|
|
||||||
set_target_properties(libopenfpga_shared PROPERTIES PREFIX "") #Avoid extra 'lib' prefix
|
|
||||||
|
|
||||||
#Specify link-time dependancies
|
|
||||||
target_link_libraries(libopenfpga_shared
|
|
||||||
libarchopenfpga
|
|
||||||
libopenfpgashell
|
|
||||||
libopenfpgautil
|
|
||||||
libfabrickey
|
|
||||||
libfpgabitstream
|
|
||||||
libini
|
|
||||||
libpcf
|
|
||||||
libvtrutil
|
|
||||||
libbusgroup
|
|
||||||
libpugixml
|
|
||||||
libvpr)
|
|
||||||
|
|
||||||
|
|
||||||
#Create the test executable
|
#Create the test executable
|
||||||
add_executable(openfpga ${EXEC_SOURCE})
|
add_executable(openfpga ${EXEC_SOURCE})
|
||||||
target_link_libraries(openfpga libopenfpga)
|
target_link_libraries(openfpga libopenfpga)
|
||||||
|
|
Loading…
Reference in New Issue