Skip to content
Snippets Groups Projects
CMakeLists.txt 3.07 KiB
Newer Older
########## wccl wrappers -- SWIG ###############

PROJECT(WcclSwigWrap)

find_package(Corpus2 1.0.8 REQUIRED)
set(CORPUS2_LIBS ${Corpus2_LIBRARY})

find_package(PwrUtils 1.0.1 REQUIRED)
set(PWRUTILS_LIBS ${PwrUtils_LIBRARY})

# find_package(Wccl 1.0.1 REQUIRED)
# set(WCCL_LIBS ${Wccl_LIBRARY})
set(CORPUS2_PWR_WCCL_LIBS ${CORPUS2_LIBS} ${PWRUTILS_LIBS} ${WCCL_LIBS})

include_directories (${Libwccl_SOURCE_DIR} "../libwccl")
link_directories(${Libwccl_BINARY_DIR})

FIND_PACKAGE(SWIG REQUIRED)
INCLUDE(${SWIG_USE_FILE})

find_package(PythonLibs)
find_package(PythonInterp)
# idea taken from pyplot build system 
execute_process(
	COMMAND
	${PYTHON_EXECUTABLE} -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='${CMAKE_INSTALL_EXEC_PREFIX}')"
	OUTPUT_VARIABLE PYTHON_INSTDIR
	OUTPUT_STRIP_TRAILING_WHITESPACE
)
message(STATUS "INFO: " "python lib: ${PYTHON_INSTDIR}" )

INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})

# -----------------------------------------------------------------------------
# -----------------------------------------------------------------------------

SET(CMAKE_SWIG_FLAGS "")
SET(SWIG_SRC_DIR ${SWIG_DIR}/wccl)

# -----------------------------------------------------------------------------
# wccl
SET_SOURCE_FILES_PROPERTIES(wccl.i PROPERTIES CPLUSPLUS ON)
SET_SOURCE_FILES_PROPERTIES(wccl.i PROPERTIES SWIG_FLAGS "-includeall" )
SWIG_ADD_MODULE(wccl python wccl.i )
SWIG_LINK_LIBRARIES(wccl ${PYTHON_LIBRARIES} ${CORPUS2_PWR_WCCL_LIBS})

# -----------------------------------------------------------------------------
# -----------------------------------------------------------------------------

set_target_properties(
	_wccl
	PROPERTIES
	INSTALL_NAME_DIR "${PYTHON_INSTDIR}"
)

set(PERM_SCRIPTS
	OWNER_READ
	OWNER_WRITE
	OWNER_EXECUTE
	GROUP_READ
	GROUP_EXECUTE
	WORLD_READ
	WORLD_EXECUTE
)

# -----------------------------------------------------------------------------
# Install python modules
# -----------------------------------------------------------------------------

install(
	TARGETS _wccl 
	LIBRARY
	DESTINATION ${PYTHON_INSTDIR}
	PERMISSIONS ${PERM_SCRIPTS}
)

install(
	FILES ${CMAKE_CURRENT_BINARY_DIR}/wccl.py
	DESTINATION ${PYTHON_INSTDIR}
	PERMISSIONS ${PERM_SCRIPTS}
)

# -----------------------------------------------------------------------------
# Install SWIG files
# -----------------------------------------------------------------------------

install(
	FILES libcclactionexeccontext.i
	libcclannotationmatch.i
	libcclbool.i
	libcclexpression.i
	libcclfunctionaloperator.i
	libcclfunctionalopsequence.i
	libccllexicon.i
	libccllexicons.i
	libcclmatchdata.i
	libcclmatch.i
	libcclmatchrule.i
	libcclmatchrulesequence.i
	libcclmatchvector.i
	libccloperator.i
	libcclparsedexpression.i
	libcclparser.i
	libcclposition.i
	libcclsentencecontext.i
	libcclstrset.i
	libccltagaction.i
	libccltagrule.i
	libccltagrulesequence.i
	libccltokenmatch.i
	libccltset.i
	libcclvalue.i
	libcclvariables.i
	libcclwcclfile.i
	libcclwcclfileopsections.i
	wccl.i
	DESTINATION ${SWIG_SRC_DIR}
	PERMISSIONS ${PERM_SCRIPTS}
)