# 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(simulua C) CMAKE_MINIMUM_REQUIRED(VERSION 2.6 ) # Where to install module parts: SET (INSTALL_LMOD share/lua/lmod CACHE PATH "Directory to install Lua modules.") 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_DOC ${INSTALL_DATA}/doc CACHE PATH "Recommended directory to install documentation into.") SET (INSTALL_EXAMPLE ${INSTALL_DATA}/example CACHE PATH "Recommended directory to install examples into.") # We need Lua to compile FIND_PACKAGE (Lua51 REQUIRED) INCLUDE_DIRECTORIES( ${LUA_INCLUDE_DIR}) # Build and install C modules INCLUDE_DIRECTORIES(lib) ADD_LIBRARY(rng MODULE lib/ranlib.c lib/mt.c lib/rng.c ) TARGET_LINK_LIBRARIES(rng ${LUA_LIBRARY} ) SET_TARGET_PROPERTIES(rng PROPERTIES PREFIX "") INSTALL (TARGETS rng DESTINATION ${INSTALL_CMOD}) ADD_LIBRARY(cdf MODULE lib/dcdflib.c lib/ipmpar.c lib/cdf.c ) TARGET_LINK_LIBRARIES(cdf ${LUA_LIBRARY} ) SET_TARGET_PROPERTIES(cdf PROPERTIES PREFIX "") INSTALL (TARGETS cdf DESTINATION ${INSTALL_CMOD}) ADD_LIBRARY(binomial MODULE lib/binomial.c ) TARGET_LINK_LIBRARIES(binomial ${LUA_LIBRARY} ) SET_TARGET_PROPERTIES(binomial PROPERTIES PREFIX "") INSTALL (TARGETS binomial DESTINATION ${INSTALL_CMOD}) ADD_LIBRARY(queue MODULE lib/queue.c ) TARGET_LINK_LIBRARIES(queue ${LUA_LIBRARY} ) SET_TARGET_PROPERTIES(queue PROPERTIES PREFIX "") INSTALL (TARGETS queue DESTINATION ${INSTALL_CMOD}) ADD_LIBRARY(stack MODULE lib/stack.c ) TARGET_LINK_LIBRARIES(stack ${LUA_LIBRARY} ) SET_TARGET_PROPERTIES(stack PROPERTIES PREFIX "") INSTALL (TARGETS stack DESTINATION ${INSTALL_CMOD}) IF(MSVC) SET_TARGET_PROPERTIES(rng PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/lib/rng.def") SET_TARGET_PROPERTIES(cdf PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/lib/cdf.def") SET_TARGET_PROPERTIES(binomial PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/lib/binomial.def") SET_TARGET_PROPERTIES(queue PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/lib/queue.def") SET_TARGET_PROPERTIES(stack PROPERTIES LINK_FLAGS "/DEF:${CMAKE_CURRENT_SOURCE_DIR}/lib/stack.def") ENDIF(MSVC) # Build Simulua standalone interpreter #~ ADD_EXECUTABLE (simulua #~ etc/simulua.c etc/slinit.c #~ lib/rng.c lib/ranlib.c lib/mt.c lib/cdf.c lib/dcdflib.c lib/ipmpar.c lib/binomial.c lib/queue.c lib/stack.c #~ ) #~ TARGET_LINK_LIBRARIES(simulua ${LUA_LIBRARIES}) # Install Lua modules INSTALL (FILES simulua.lua DESTINATION ${INSTALL_LMOD}) # Install all files and documentation INSTALL (DIRECTORY docs/ DESTINATION ${INSTALL_DOC}) INSTALL (DIRECTORY examples/ DESTINATION ${INSTALL_EXAMPLE})