Skip to content
Snippets Groups Projects
Select Git revision
  • db285b8f3634e9a5e45fb8cff20cff0bfc01c4ba
  • master default protected
  • fix-words-ann
  • wccl-rules-migration
  • develop
5 results

CMakeLists.txt

Blame
  • CMakeLists.txt 2.84 KiB
    ########## 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)
    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})
    
    if(CMAKE_COMPILER_IS_GNUCXX)
            set(CMAKE_CXX_FLAGS "-ansi $ENV{CXXFLAGS}")
            set(CMAKE_CXX_FLAGS_DEBUG "-O0 -DDEBUG -ggdb3 -ansi $ENV{CXXFLAGS}")
            set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -fno-omit-frame-pointer")
    endif(CMAKE_COMPILER_IS_GNUCXX)
    
    file(GLOB_RECURSE I_FILES "*.i")
    
    # -----------------------------------------------------------------------------
    # -----------------------------------------------------------------------------
    
    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" )
    set(SWIG_MODULE_wccl_EXTRA_DEPS ${I_FILES})
    SWIG_ADD_MODULE(wccl python wccl.i )
    SWIG_LINK_LIBRARIES(wccl ${PYTHON_LIBRARIES} ${CORPUS2_PWR_WCCL_LIBS} antlr-pic)
    
    # -----------------------------------------------------------------------------
    # -----------------------------------------------------------------------------
    
    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 ${I_FILES}
    	DESTINATION ${SWIG_SRC_DIR}
    	PERMISSIONS ${PERM_SCRIPTS}
    )