This repository has been archived by the owner on Nov 20, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 13
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
3 changed files
with
173 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,28 @@ | ||
# Copyright (C) 2007-2009 LuaDist. | ||
# Created by Peter Drahoš | ||
# 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(luaexpat C) | ||
CMAKE_MINIMUM_REQUIRED(VERSION 2.6) | ||
INCLUDE(dist.cmake) | ||
|
||
# Find Expat | ||
FIND_PACKAGE (EXPAT REQUIRED) | ||
INCLUDE_DIRECTORIES (${EXPAT_INCLUDE_DIR}) | ||
|
||
# Build LuaExpat module | ||
ADD_LUA_MODULE(lxp src/lxplib.c src/lxp.def) | ||
TARGET_LINK_LIBRARIES(lxp ${EXPAT_LIBRARIES}) | ||
|
||
# Install LuaExpat | ||
INSTALL (TARGETS lxp LIBRARY DESTINATION ${INSTALL_CMOD}) | ||
INSTALL (FILES src/lxp/lom.lua DESTINATION ${INSTALL_LMOD}/lxp) | ||
INSTALL(FILES README DESTINATION ${INSTALL_DATA}) | ||
INSTALL(DIRECTORY doc/ DESTINATION ${INSTALL_DOC}) | ||
INSTALL(DIRECTORY tests/ DESTINATION ${INSTALL_TEST}) | ||
|
||
ADD_LUA_TEST(tests/test.lua) | ||
ADD_LUA_TEST(tests/test-lom.lua) # FIX: need to add src/?.lua to package.path | ||
|
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 = "luaexpat" | ||
version = "1.1.0" | ||
|
||
desc = "LuaExpat is a SAX (Simple API for XML) XML parser based on the Expat library." | ||
author = "Roberto Ierusalimschy, André Carregal, Tomás Guisasola" | ||
license = "MIT/X11" | ||
url = "http://www.keplerproject.org/luaexpat/" | ||
maintainer = "Peter Drahoš" | ||
|
||
depends = { | ||
"lua ~> 5.1", | ||
"libexpat >= 2.0" | ||
} |