From d2d19cdaedb8096125e8a9d9c877849d9de7aa26 Mon Sep 17 00:00:00 2001 From: sonoro1234 Date: Thu, 2 May 2019 16:01:15 +0200 Subject: cmake: cleaning and only link against lualib on windows (see:http://lua-users.org/wiki/BuildingModules) --- CMakeLists.txt | 21 +++------- dist.cmake | 130 --------------------------------------------------------- 2 files changed, 6 insertions(+), 145 deletions(-) delete mode 100644 dist.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 61b7c0d..beeec4d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,11 +6,9 @@ PROJECT(lanes C) CMAKE_MINIMUM_REQUIRED(VERSION 2.6) -INCLUDE(dist.cmake) + FIND_PACKAGE(Lua51 REQUIRED) -FIND_PROGRAM(LUA NAMES lua5.1 lua51 lua) -FIND_PROGRAM(LUAC NAMES luac5.1 luac51 luac) INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIR}) if(USE_PTHREAD) @@ -27,17 +25,6 @@ IF(CYGWIN) ADD_DEFINITIONS(-Dpthread_yield=sched_yield) ENDIF(CYGWIN) -#2DO - use provided bin2c -# Embed keeper.lua in text form in C (embedding bytecode is not LuaJIT2-compatible) -#ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/keeper.lch -# DEPENDS src/keeper.lua -# COMMAND "${LUA}" "${CMAKE_CURRENT_SOURCE_DIR}/tools/bin2c.lua" -# "${CMAKE_CURRENT_SOURCE_DIR}/src/keeper.lua" -# "-o" "${CMAKE_CURRENT_BINARY_DIR}/keeper.lch") -#SET_SOURCE_FILES_PROPERTIES(src/lanes.c PROPERTIES OBJECT_DEPENDS -# ${CMAKE_CURRENT_BINARY_DIR}/keeper.lch) -#INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) - # Build INCLUDE_DIRECTORIES(src) @@ -49,8 +36,12 @@ IF(UNIX AND NOT CYGWIN) ENDIF(UNIX AND NOT CYGWIN) - +if(WIN32) TARGET_LINK_LIBRARIES(core ${LUA_LIBRARY} ${LIBS}) +else(WIN32) +TARGET_LINK_LIBRARIES(core ${LIBS}) +endif(WIN32) + SET_TARGET_PROPERTIES(core PROPERTIES PREFIX "") # Install all files and documentation diff --git a/dist.cmake b/dist.cmake deleted file mode 100644 index 95928b2..0000000 --- a/dist.cmake +++ /dev/null @@ -1,130 +0,0 @@ -# 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) -- cgit v1.2.3-55-g6feb From 8bb423b0231fb5b9c32f20badbea30f90e137891 Mon Sep 17 00:00:00 2001 From: sonoro1234 Date: Fri, 3 May 2019 10:32:57 +0200 Subject: cmake: some install variables that were left out in last commit --- CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index beeec4d..7f2701b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,6 +45,12 @@ endif(WIN32) SET_TARGET_PROPERTIES(core PROPERTIES PREFIX "") # Install all files and documentation +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_TEST ${INSTALL_DATA}/test CACHE PATH "Recommended directory to install tests into.") + INSTALL (TARGETS core DESTINATION ${INSTALL_CMOD}) INSTALL (FILES src/lanes.lua DESTINATION ${INSTALL_LMOD}) -- cgit v1.2.3-55-g6feb