# Copyright (C) 2007-2009 LuaDist. # Created by Peter Kapec # Redistribution and use of this file is allowed according to the terms of the MIT license. # For details see the COPYRIGHT file distributed with LuaDist. # Please note that the package source code is licensed under its own license. PROJECT(lrexlib C) # CMake configuration: CMAKE_MINIMUM_REQUIRED(VERSION 2.6) SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_MODULE_PATH}) # Where to install module parts: SET (INSTALL_CMOD share/lua/cmod CACHE PATH "Directory to install Lua binary modules.") SET (INSTALL_DATA . CACHE PATH "Directory the package can store documentation, tests or other data in.") SET (INSTALL_TEST ${INSTALL_DATA}/test CACHE PATH "Recommended directory to install tests into.") SET (INSTALL_DOC ${INSTALL_DATA}/doc CACHE PATH "Recommended directory to install documentation into.") # Find Lua FIND_PACKAGE (Lua51 REQUIRED) INCLUDE_DIRECTORIES( ${LUA_INCLUDE_DIR}) # We need PCRE and POSIX/RXSpencer to compile FIND_PACKAGE(PCRE REQUIRED) INCLUDE_DIRECTORIES(${PCRE_INCLUDE_DIRS}) # We need POSIX/RXSpencer to compile IF (WIN32 AND NOT CYGWIN) FIND_PACKAGE(RXSpencer REQUIRED) INCLUDE_DIRECTORIES(${RXSPENCER_INCLUDE_DIRS}) ENDIF() # We need Oniguruma to compile FIND_PACKAGE(Oniguruma REQUIRED) INCLUDE_DIRECTORIES(${ONIGURUMA_INCLUDE_DIRS}) # common lrexlib modules SET (COMMON_SRC src/common.c ) # pcre module SET(PCRE_SRCS src/pcre/lpcre.c src/pcre/lpcre_f.c ${COMMON_SRC}) ADD_LIBRARY(pcre MODULE ${PCRE_SRCS}) TARGET_LINK_LIBRARIES(pcre ${LUA_LIBRARY} ${PCRE_LIBRARIES}) SET_TARGET_PROPERTIES(pcre PROPERTIES PREFIX "") # posix module SET(POSIX_SRCS src/posix/lposix.c ${COMMON_SRC}) ADD_LIBRARY(posix MODULE ${POSIX_SRCS}) TARGET_LINK_LIBRARIES(posix ${LUA_LIBRARY}) SET_TARGET_PROPERTIES(posix PROPERTIES PREFIX "") IF (WIN32 AND NOT CYGWIN) TARGET_LINK_LIBRARIES(posix ${RXSPENCER_LIBRARIES}) ENDIF() # oniguruma module SET(ONIGURUMA_SRCS src/oniguruma/lonig.c src/oniguruma/lonig_f.c ${COMMON_SRC}) ADD_LIBRARY(onig MODULE ${ONIGURUMA_SRCS}) TARGET_LINK_LIBRARIES(onig ${LUA_LIBRARY} ${ONIGURUMA_LIBRARIES}) SET_TARGET_PROPERTIES(onig PROPERTIES PREFIX "") IF(WIN32) SET_TARGET_PROPERTIES(onig PROPERTIES LINK_FLAGS "-Wl,--enable-auto-import") ENDIF() # Install lrexlib modules INSTALL(TARGETS pcre DESTINATION ${INSTALL_CMOD}/rex) INSTALL(TARGETS posix DESTINATION ${INSTALL_CMOD}/rex) INSTALL(TARGETS onig DESTINATION ${INSTALL_CMOD}/rex) INSTALL(FILES ChangeLog LICENSE NEWS README DESTINATION ${INSTALL_DATA}) INSTALL(DIRECTORY test/ DESTINATION ${INSTALL_TEST}) INSTALL(DIRECTORY doc/ DESTINATION ${INSTALL_DOC})