# 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(cdlua C) # CMake configuration: CMAKE_MINIMUM_REQUIRED (VERSION 2.6) SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) # Where to install module parts: SET (INSTALL_CMOD share/lua/cmod CACHE PATH "Directory to install Lua binary modules.") SET (INSTALL_LIB lib CACHE PATH "Directory for external libraries.") # Macros MACRO(ADD_PREFIX prefix rootlist) SET(outlist ) FOREACH(root ${${rootlist}}) LIST(APPEND outlist ${prefix}${root}) ENDFOREACH(root) SET(${rootlist} ${outlist}) ENDMACRO(ADD_PREFIX) # find headers & libs FIND_PACKAGE(Lua51 REQUIRED) INCLUDE_DIRECTORIES (${LUA_INCLUDE_DIR}) FIND_PATH( CD_INCLUDE_DIR NAMES cd.h ) INCLUDE_DIRECTORIES (${CD_INCLUDE_DIR}) FIND_LIBRARY( CD_LIBRARY NAMES cd) FIND_LIBRARY( CDPDF_LIBRARY NAMES cdpdf) FIND_LIBRARY( CDCONTEXTPLUS_LIBRARY NAMES cdcontextplus) FIND_PATH( IM_INCLUDE_DIR NAMES im.h ) INCLUDE_DIRECTORIES (${IM_INCLUDE_DIR}) FIND_LIBRARY( IM_LIBRARY NAMES im) FIND_LIBRARY( IMLUA_LIBRARY NAMES imlua libimlua) # set stuff # ADD_DEFINITIONS(-DCD_NO_OLD_INTERFACE -DFT2_BUILD_LIBRARY) ADD_DEFINITIONS(-DCD_NO_OLD_INTERFACE ) INCLUDE_DIRECTORIES ("include" ) # cdlua SET(SRC_CDLUA cdlua5.c cdvoid5.c cdlua5ctx.c cdlua5_active.c cdlua5_canvas.c) ADD_PREFIX(src/lua5/ SRC_CDLUA) ADD_LIBRARY(cdlua SHARED ${SRC_CDLUA}) TARGET_LINK_LIBRARIES(cdlua ${LUA_LIBRARY} ${CD_LIBRARY}) IF(MSVC) SET_TARGET_PROPERTIES(cdlua PROPERTIES OUTPUT_NAME libcdlua CLEAN_DIRECT_OUTPUT 1 LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/src/lua5/cdlua5.def") ENDIF(MSVC) # cdlua module ADD_LIBRARY(cdlua_module MODULE src/lua5/cdlua5_module.c) TARGET_LINK_LIBRARIES(cdlua_module cdlua) SET_TARGET_PROPERTIES(cdlua_module PROPERTIES PREFIX "" OUTPUT_NAME cdlua CLEAN_DIRECT_OUTPUT 1 ) IF(MSVC) SET_TARGET_PROPERTIES(cdlua_module PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/src/lua5/cdlua_module.def") ENDIF(MSVC) # cdluapdf ADD_LIBRARY(cdluapdf MODULE src/lua5/cdluapdf5.c) TARGET_LINK_LIBRARIES(cdluapdf cdlua ${CDPDF_LIBRARY} ) SET_TARGET_PROPERTIES(cdluapdf PROPERTIES PREFIX "") IF(MSVC) SET_TARGET_PROPERTIES(cdluapdf PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/src/lua5/cdluapdf5.def") ENDIF(MSVC) # cdluacontextplus IF(CDCONTEXTPLUS_LIBRARY) ADD_LIBRARY(cdluacontextplus MODULE src/lua5/cdluacontextplus5.c) SET_TARGET_PROPERTIES(cdluacontextplus PROPERTIES PREFIX "") IF(WIN32) TARGET_LINK_LIBRARIES(cdluacontextplus cdlua ${CDCONTEXTPLUS_LIBRARY} ) ELSE() FIND_PACKAGE(X11) INCLUDE_DIRECTORIES(${X11_INCLUDE_DIR}) TARGET_LINK_LIBRARIES(cdluacontextplus cdlua ${CDCONTEXTPLUS_LIBRARY} ${X11_Xft_LIB}) ENDIF () IF(MSVC) SET_TARGET_PROPERTIES(cdluacontextplus PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/src/lua5/cdluacontextplus5.def") ENDIF(MSVC) INSTALL(TARGETS cdluacontextplus DESTINATION ${INSTALL_CMOD}) ENDIF() # cdluaim ADD_LIBRARY(cdluaim MODULE src/lua5/cdluaim5.c) TARGET_LINK_LIBRARIES(cdluaim cdlua ${IMLUA_LIBRARY} ${IM_LIBRARY} ) SET_TARGET_PROPERTIES(cdluaim PROPERTIES PREFIX "") IF(MSVC) SET_TARGET_PROPERTIES(cdluaim PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/src/lua5/cdluaim5.def") ENDIF(MSVC) # install all Lua modules INSTALL(TARGETS cdlua DESTINATION ${INSTALL_LIB}) INSTALL(TARGETS cdlua_module cdluapdf cdluaim DESTINATION ${INSTALL_CMOD})