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

CMakeLists.txt

Blame
  • user avatar
    Adam Wardynski authored
    The agreement stuff isn't implemented yet.
    aabc6962
    History
    CMakeLists.txt 3.26 KiB
    ########## libwccl ###############
    
    PROJECT(wccl)
    
    include_directories( ${CMAKE_CURRENT_BINARY_DIR}/include/ )
    
    find_package(Corpus2 1.0.2 REQUIRED)
    set(LIBS ${LIBS} ${Corpus2_LIBRARY})
    
    find_package(PwrUtils 0.0.3 REQUIRED)
    set(LIBS ${LIBS} ${PwrUtils_LIBRARY})
    
    link_directories(${Boost_LIBRARY_DIRS})
    set(LIBS ${LIBS} ${Boost_LIBRARIES})
    
    find_package(ICU REQUIRED)
    include_directories(${ICU_INCLUDE_DIR})
    set(LIBS ${LIBS} ${ICU_LIBRARIES} ${ICU_I18N_LIBRARIES})
    
    find_package(ANTLR REQUIRED)
    include_directories(${ANTLR_INCLUDE_DIR})
    
    if(WIN32)
    # On UNIX this should be included only in final executables
    	set(LIBS ${LIBS} ${ANTLR_LIBRARY})
    endif(WIN32)
    
    SET(libwccl_STAT_SRC
    	exception.cpp
    	ops/formatters.cpp
    	ops/functions/bool/iteration.cpp
    	ops/functions/bool/iterations/atleast.cpp
    	ops/functions/bool/iterations/leftlook.cpp
    	ops/functions/bool/iterations/only.cpp
    	ops/functions/bool/iterations/rightlook.cpp
    	ops/functions/bool/predicate.cpp
    	ops/functions/bool/predicates/and.cpp
    	ops/functions/bool/predicates/isinside.cpp
    	ops/functions/bool/predicates/isoutside.cpp
    	ops/functions/bool/predicates/logicalpredicate.cpp
    	ops/functions/bool/predicates/nor.cpp
    	ops/functions/bool/predicates/or.cpp
    	ops/functions/bool/predicates/pointagreement.cpp
    	ops/functions/bool/predicates/regex.cpp
    	ops/functions/bool/predicates/strongagreement.cpp
    	ops/functions/bool/predicates/weakagreement.cpp
    	ops/functions/position/relativeposition.cpp
    	ops/functions/strset/affix.cpp
    	ops/functions/strset/getlemmas.cpp
    	ops/functions/strset/getorth.cpp
    	ops/functions/strset/tolower.cpp
    	ops/functions/strset/toupper.cpp
    	ops/functions/tset/agrfilter.cpp
    	ops/functions/tset/catfilter.cpp
    	ops/functions/tset/getsymbols.cpp
    	ops/functions/tset/getsymbolsinrange.cpp
    	parser/grammar.g
    	parser/Parser.cpp
    	parser/ParserException.cpp
    	sentencecontext.cpp
    	values/bool.cpp
    	values/position.cpp
    	values/strset.cpp
    	values/tset.cpp
    	values/value.cpp
    	variables.cpp
    )
    
    SET(libwccl_STAT_SRC ${libwccl_STAT_SRC}
    	${PROJECT_BINARY_DIR}/parser/ANTLRLexer.cpp
    	${PROJECT_BINARY_DIR}/parser/ANTLRParser.cpp
    )
    
    include_directories(${PROJECT_BINARY_DIR}/parser)
    
    ADD_CUSTOM_COMMAND(
    	OUTPUT ${PROJECT_BINARY_DIR}/parser/ANTLRLexer.cpp
    		${PROJECT_BINARY_DIR}/parser/ANTLRLexer.hpp
    		${PROJECT_BINARY_DIR}/parser/ANTLRParser.cpp
    		${PROJECT_BINARY_DIR}/parser/ANTLRParser.hpp
    		${PROJECT_BINARY_DIR}/parser/ANTLRExprTokenTypes.hpp
    		${PROJECT_BINARY_DIR}/parser/ANTLRExprTokenTypes.txt
    	COMMAND runantlr -o parser ${PROJECT_SOURCE_DIR}/parser/grammar.g
    	DEPENDS ${PROJECT_SOURCE_DIR}/parser/grammar.g
    	COMMENT "-- Generating ANTLR parser cpp/hpp/txt files")
    
    file(GLOB_RECURSE INCS "*.h")
    
    if(WIN32)
    #need to explicitly specify exports/external API for win DLL
    #until that's done, build STATIC for WIN32
    	add_library(wccl STATIC ${libwccl_STAT_SRC} ${INCS})
    else(WIN32)
    	add_library(wccl SHARED ${libwccl_STAT_SRC} ${INCS})
    endif(WIN32)
    
    target_link_libraries ( wccl ${LIBS})
    
    set_target_properties(wccl PROPERTIES
    	VERSION "${ver_major}.${ver_minor}"
    	SOVERSION ${ver_major})
    
    
    if(UNIX)
    	install(TARGETS wccl
    		LIBRARY DESTINATION lib
    	)
    	install(
    		DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    		DESTINATION include
    		FILES_MATCHING PATTERN "*.h"
    		PATTERN ".svn" EXCLUDE
    		PATTERN "bin" EXCLUDE
    		PATTERN "build" EXCLUDE
    		PATTERN "CMake*" EXCLUDE
    	)
    endif(UNIX)