# 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(lanes C) # CMake configuration: CMAKE_MINIMUM_REQUIRED(VERSION 2.6 ) SET (CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) # 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_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.") # We need Lua to compile FIND_PACKAGE (Lua51 REQUIRED) INCLUDE_DIRECTORIES( ${LUA_INCLUDE_DIR}) # Build INCLUDE_DIRECTORIES(src) ADD_LIBRARY(lua51-lanes MODULE src/lanes.c src/threading.c src/tools.c) IF(MINGW OR CYGWIN) #~ FIND_FILE(MSVCR80 NAMES msvcr80.dll msvcr90.dll) #~ SET(LIBS gcc ${MSVCR80}) #~ IF(MSVC90) #~ from InstallRequiredSystemLibraries.cmake IF(CMAKE_CL_64) SET(CMAKE_MSVC_ARCH amd64) ELSE(CMAKE_CL_64) SET(CMAKE_MSVC_ARCH x86) ENDIF(CMAKE_CL_64) GET_FILENAME_COMPONENT(devenv_dir "${CMAKE_MAKE_PROGRAM}" PATH) GET_FILENAME_COMPONENT(base_dir "${devenv_dir}/../.." ABSOLUTE) # Find the runtime library redistribution directory. FIND_PATH(MSVC90_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest PATHS "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\9.0;InstallDir]/../../VC/redist" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VCExpress\\9.0;InstallDir]/../../VC/redist" "${base_dir}/VC/redist" ) SET(MSVC90_CRT_DIR "${MSVC90_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.CRT") SET(LIBS gcc msvcr90 "${MSVC90_CRT_DIR}/msvcr90.dll") #~ ENDIF() ENDIF() TARGET_LINK_LIBRARIES(lua51-lanes ${LUA_LIBRARY} ${LIBS}) SET_TARGET_PROPERTIES(lua51-lanes PROPERTIES PREFIX "") # Install all files and documentation INSTALL (TARGETS lua51-lanes DESTINATION ${INSTALL_CMOD}) INSTALL (FILES src/lanes.lua DESTINATION ${INSTALL_LMOD}) INSTALL (FILES ABOUT BUGS COPYRIGHT CHANGES README TODO DESTINATION ${INSTALL_DATA}) INSTALL (DIRECTORY docs/ DESTINATION ${INSTALL_DOC}) INSTALL (DIRECTORY tests/ DESTINATION ${INSTALL_TEST})