This repository has been archived by the owner on Nov 20, 2020. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
build: add CMakeLists.txt and related files
- Loading branch information
Showing
5 changed files
with
206 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# 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(lmapm C) | ||
CMAKE_MINIMUM_REQUIRED(VERSION 2.6) | ||
INCLUDE(dist.cmake) | ||
|
||
# Find Mapm library | ||
FIND_PACKAGE(MAPM REQUIRED) | ||
INCLUDE_DIRECTORIES( ${MAPM_INCLUDE_DIRS}) | ||
|
||
# Build | ||
ADD_LUA_MODULE(mapm lmapm.c mapm.def) | ||
TARGET_LINK_LIBRARIES(mapm ${MAPM_LIBRARIES}) | ||
|
||
# Install all files and documentation | ||
INSTALL (TARGETS mapm DESTINATION ${INSTALL_CMOD}) | ||
INSTALL (FILES README DESTINATION ${INSTALL_DATA}) | ||
INSTALL (FILES test.lua DESTINATION ${INSTALL_TEST}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
# Copyright (C) 2007-2009 LuaDist. | ||
# Created by Peter Kapec <kapecp@gmail.com> | ||
# 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. | ||
# Note: | ||
# Searching headers and libraries is very simple and is NOT as powerful as scripts | ||
# distributed with CMake, because LuaDist defines directories to search for. | ||
# Everyone is encouraged to contact the author with improvements. Maybe this file | ||
# becomes part of CMake distribution sometimes. | ||
|
||
# - Find mapm | ||
# Find the native MAPM headers and libraries. | ||
# | ||
# MAPM_INCLUDE_DIRS - where to find m_apm.h, etc. | ||
# MAPM_LIBRARIES - List of libraries when using mapm. | ||
# MAPM_FOUND - True if mapm found. | ||
|
||
# Look for the header file. | ||
FIND_PATH(MAPM_INCLUDE_DIR NAMES m_apm.h) | ||
|
||
# Look for the library. | ||
FIND_LIBRARY(MAPM_LIBRARY NAMES mapm libmapm) | ||
|
||
# Handle the QUIETLY and REQUIRED arguments and set MAPM_FOUND to TRUE if all listed variables are TRUE. | ||
INCLUDE(FindPackageHandleStandardArgs) | ||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(MAPM DEFAULT_MSG MAPM_LIBRARY MAPM_INCLUDE_DIR) | ||
|
||
# Copy the results to the output variables. | ||
IF(MAPM_FOUND) | ||
SET(MAPM_LIBRARIES ${MAPM_LIBRARY}) | ||
SET(MAPM_INCLUDE_DIRS ${MAPM_INCLUDE_DIR}) | ||
ELSE(MAPM_FOUND) | ||
SET(MAPM_LIBRARIES) | ||
SET(MAPM_INCLUDE_DIRS) | ||
ENDIF(MAPM_FOUND) | ||
|
||
MARK_AS_ADVANCED(MAPM_INCLUDE_DIRS MAPM_LIBRARIES) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,130 @@ | ||
# LuaDist CMake utility library. | ||
# Provides variables and utility functions common to LuaDist CMake builds. | ||
# | ||
# Copyright (C) 2007-2010 LuaDist. | ||
# by David Manura, Peter Drahos | ||
# 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. | ||
|
||
# Few convinence settings | ||
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_BIN bin CACHE PATH "Where to install binaries to.") | ||
set(INSTALL_LIB lib CACHE PATH "Where to install libraries to.") | ||
set(INSTALL_INC include CACHE PATH "Where to install headers to.") | ||
set(INSTALL_ETC etc CACHE PATH "Where to store configuration files") | ||
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 share/${PROJECT_NAME} 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.") | ||
set(INSTALL_TEST ${INSTALL_DATA}/test CACHE PATH "Recommended directory to install tests into.") | ||
set(INSTALL_FOO ${INSTALL_DATA}/etc CACHE PATH "Where to install additional files") | ||
|
||
|
||
# In MSVC, prevent warnings that can occur when using standard libraries. | ||
if(MSVC) | ||
add_definitions(-D_CRT_SECURE_NO_WARNINGS) | ||
endif(MSVC) | ||
|
||
# Adds Lua shared library module target `_target`. | ||
# Additional sources to build the module are listed after `_target`. | ||
macro(add_lua_module _target) | ||
find_package(Lua51 REQUIRED) | ||
include_directories(${LUA_INCLUDE_DIR}) #2DO: somehow apply only to _target? | ||
|
||
add_library(${_target} MODULE ${ARGN}) | ||
set_target_properties(${_target} PROPERTIES PREFIX "") | ||
target_link_libraries(${_target} ${LUA_LIBRARY}) | ||
|
||
IF(WIN32) | ||
set_target_properties(${_target} PROPERTIES LINK_FLAGS "-Wl,--enable-auto-import") | ||
ENDIF() | ||
|
||
endmacro(add_lua_module) | ||
|
||
# Runs Lua script `_testfile` under CTest tester. | ||
# Optional argument `_testcurrentdir` is current working directory to run test under | ||
# (defaults to ${CMAKE_CURRENT_BINARY_DIR}). | ||
# Both paths, if relative, are relative to ${CMAKE_CURRENT_SOURCE_DIR}. | ||
# Under LuaDist, set test=true in config.lua to enable testing. | ||
macro(add_lua_test _testfile) | ||
include(CTest) | ||
if(BUILD_TESTING) | ||
find_program(LUA NAMES lua lua.bat) | ||
get_filename_component(TESTFILEABS ${_testfile} ABSOLUTE) | ||
get_filename_component(TESTFILENAME ${_testfile} NAME) | ||
get_filename_component(TESTFILEBASE ${_testfile} NAME_WE) | ||
|
||
# Write wrapper script. | ||
set(TESTWRAPPER ${CMAKE_CURRENT_BINARY_DIR}/${TESTFILENAME}) | ||
set(TESTWRAPPERSOURCE | ||
"package.path = '${CMAKE_CURRENT_BINARY_DIR}/?.lua\;${CMAKE_CURRENT_SOURCE_DIR}/?.lua\;' .. package.path | ||
package.cpath = '${CMAKE_CURRENT_BINARY_DIR}/?.so\;${CMAKE_CURRENT_BINARY_DIR}/?.dll\;' .. package.cpath | ||
return dofile '${TESTFILEABS}' | ||
" ) | ||
if(${ARGC} GREATER 1) | ||
set(_testcurrentdir ${ARGV1}) | ||
get_filename_component(TESTCURRENTDIRABS ${_testcurrentdir} ABSOLUTE) | ||
set(TESTWRAPPERSOURCE | ||
"require 'lfs' | ||
lfs.chdir('${TESTCURRENTDIRABS}') | ||
${TESTWRAPPERSOURCE}") | ||
endif() | ||
FILE(WRITE ${TESTWRAPPER} ${TESTWRAPPERSOURCE}) | ||
|
||
add_test(${TESTFILEBASE} ${LUA} ${TESTWRAPPER}) | ||
endif(BUILD_TESTING) | ||
|
||
# see also http://gdcm.svn.sourceforge.net/viewvc/gdcm/Sandbox/CMakeModules/UsePythonTest.cmake | ||
endmacro(add_lua_test) | ||
|
||
# Converts Lua source file `_source` to binary string embedded in C source | ||
# file `_target`. Optionally compiles Lua source to byte code (not available | ||
# under LuaJIT2, which doesn't have a bytecode loader). Additionally, Lua | ||
# versions of bin2c [1] and luac [2] may be passed respectively as additional | ||
# arguments. | ||
# | ||
# [1] http://lua-users.org/wiki/BinToCee | ||
# [2] http://lua-users.org/wiki/LuaCompilerInLua | ||
function(add_lua_bin2c _target _source) | ||
find_program(LUA NAMES lua lua.bat) | ||
execute_process(COMMAND ${LUA} -e "string.dump(function()end)" RESULT_VARIABLE _LUA_DUMP_RESULT ERROR_QUIET) | ||
if (NOT ${_LUA_DUMP_RESULT}) | ||
SET(HAVE_LUA_DUMP true) | ||
endif() | ||
message("-- string.dump=${HAVE_LUA_DUMP}") | ||
|
||
if (ARGV2) | ||
get_filename_component(BIN2C ${ARGV2} ABSOLUTE) | ||
set(BIN2C ${LUA} ${BIN2C}) | ||
else() | ||
find_program(BIN2C NAMES bin2c bin2c.bat) | ||
endif() | ||
if (HAVE_LUA_DUMP) | ||
if (ARGV3) | ||
get_filename_component(LUAC ${ARGV3} ABSOLUTE) | ||
set(LUAC ${LUA} ${LUAC}) | ||
else() | ||
find_program(LUAC NAMES luac luac.bat) | ||
endif() | ||
endif (HAVE_LUA_DUMP) | ||
message("-- bin2c=${BIN2C}") | ||
message("-- luac=${LUAC}") | ||
|
||
get_filename_component(SOURCEABS ${_source} ABSOLUTE) | ||
if (HAVE_LUA_DUMP) | ||
get_filename_component(SOURCEBASE ${_source} NAME_WE) | ||
add_custom_command( | ||
OUTPUT ${_target} DEPENDS ${_source} | ||
COMMAND ${LUAC} -o ${CMAKE_CURRENT_BINARY_DIR}/${SOURCEBASE}.lo ${SOURCEABS} | ||
COMMAND ${BIN2C} ${CMAKE_CURRENT_BINARY_DIR}/${SOURCEBASE}.lo ">${_target}" ) | ||
else() | ||
add_custom_command( | ||
OUTPUT ${_target} DEPENDS ${SOURCEABS} | ||
COMMAND ${BIN2C} ${_source} ">${_target}" ) | ||
endif() | ||
endfunction(add_lua_bin2c) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
--- This file is part of LuaDist project | ||
|
||
name = "lmapm" | ||
version="5.1" | ||
|
||
desc = "This is a big-number library for Lua 5.1." | ||
author = "Luiz Henrique de Figueiredo" | ||
license = "Public domain" | ||
url = "http://www.tecgraf.puc-rio.br/~lhf/ftp/lua/#lmapm" | ||
maintainer = "Peter Kapec" | ||
|
||
depends = { | ||
"lua ~> 5.1", | ||
"mapm >=4.9.5" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
EXPORTS | ||
luaopen_mapm |