mirror of
https://github.com/reactos/CMake.git
synced 2024-11-24 03:59:58 +00:00
FindLua: Add tests for this module
This commit is contained in:
parent
e6a32f0525
commit
9455512d22
@ -152,6 +152,7 @@ add_RunCMake_test(ExternalData)
|
||||
add_RunCMake_test(FeatureSummary)
|
||||
add_RunCMake_test(FPHSA)
|
||||
add_RunCMake_test(FindBoost)
|
||||
add_RunCMake_test(FindLua)
|
||||
add_RunCMake_test(FindOpenGL)
|
||||
if(NOT CMAKE_C_COMPILER_ID MATCHES "Watcom")
|
||||
add_RunCMake_test(GenerateExportHeader)
|
||||
|
3
Tests/RunCMake/FindLua/CMakeLists.txt
Normal file
3
Tests/RunCMake/FindLua/CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
||||
cmake_minimum_required(VERSION 3.4)
|
||||
project(${RunCMake_TEST} C)
|
||||
include(${RunCMake_TEST}.cmake)
|
87
Tests/RunCMake/FindLua/FindLuaTest.cmake
Normal file
87
Tests/RunCMake/FindLua/FindLuaTest.cmake
Normal file
@ -0,0 +1,87 @@
|
||||
unset(VERSION)
|
||||
|
||||
# Ignore all default paths for this test to avoid finding system Lua
|
||||
set(CMAKE_INCLUDE_PATH )
|
||||
set(CMAKE_PREFIX_PATH )
|
||||
set(CMAKE_FRAMEWORK_PATH )
|
||||
|
||||
set(ENV{CMAKE_INCLUDE_PATH} )
|
||||
set(ENV{CMAKE_PREFIX_PATH} )
|
||||
set(ENV{CMAKE_FRAMEWORK_PATH} )
|
||||
|
||||
set(ENV{PATH} )
|
||||
set(ENV{INCLUDE} )
|
||||
|
||||
set(CMAKE_SYSTEM_INCLUDE_PATH )
|
||||
set(CMAKE_SYSTEM_PREFIX_PATH )
|
||||
set(CMAKE_SYSTEM_FRAMEWORK_PATH )
|
||||
|
||||
function(require_found path version)
|
||||
find_package(Lua ${VERSION} QUIET)
|
||||
if(NOT "${LUA_INCLUDE_DIR}" STREQUAL "${path}")
|
||||
message(FATAL_ERROR "LUA_INCLUDE_PATH != path: '${LUA_INCLUDE_DIR}' != '${path}'")
|
||||
endif()
|
||||
if(NOT LUA_VERSION_STRING MATCHES "^${version}\.[0-9]$")
|
||||
message(FATAL_ERROR "Wrong versionfound in '${LUA_INCLUDE_DIR}': ${LUA_VERSION_STRING} != ${version}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# Use functions for scoping and better error messages
|
||||
function(require_find path version)
|
||||
unset(LUA_INCLUDE_DIR CACHE)
|
||||
require_found(${lua_path} ${version})
|
||||
endfunction()
|
||||
|
||||
function(test_prefix_path path lua_path version)
|
||||
set(CMAKE_PREFIX_PATH ${path})
|
||||
require_find(lua_path ${version})
|
||||
endfunction()
|
||||
|
||||
function(test_include_path path lua_path version)
|
||||
set(CMAKE_INCLUDE_PATH ${path})
|
||||
require_find(lua_path ${version})
|
||||
endfunction()
|
||||
|
||||
function(test_env_path path lua_path version)
|
||||
set(ENV{LUA_DIR} ${path})
|
||||
require_find(lua_path ${version})
|
||||
unset(ENV{LUA_DIR})
|
||||
endfunction()
|
||||
|
||||
function(test_path prefix_path lua_path version)
|
||||
# Shortcut: Make paths relative to current list dir
|
||||
set(prefix_path ${CMAKE_CURRENT_LIST_DIR}/${prefix_path})
|
||||
set(lua_path ${CMAKE_CURRENT_LIST_DIR}/${lua_path})
|
||||
|
||||
test_prefix_path(${prefix_path} ${lua_path} ${version})
|
||||
test_include_path(${prefix_path}/include ${lua_path} ${version})
|
||||
test_env_path(${prefix_path} ${lua_path} ${version})
|
||||
endfunction()
|
||||
|
||||
# Simple test
|
||||
test_path(prefix1 prefix1/include 5.3)
|
||||
# Find highest version
|
||||
test_path(prefix2 prefix2/include/lua5.3 5.3)
|
||||
foreach(ver 5.3 5.2 5.1)
|
||||
# At least X or X.0 -> Highest
|
||||
set(VERSION "${ver}")
|
||||
test_path(prefix2 prefix2/include/lua5.3 5.3)
|
||||
set(VERSION "${ver}.0")
|
||||
test_path(prefix2 prefix2/include/lua5.3 5.3)
|
||||
# Exactly X/X.0
|
||||
set(VERSION "${ver}" EXACT)
|
||||
test_path(prefix2 prefix2/include/lua${ver} ${ver})
|
||||
set(VERSION "${ver}.0" EXACT)
|
||||
test_path(prefix2 prefix2/include/lua${ver} ${ver})
|
||||
endforeach()
|
||||
|
||||
# Find unknown version
|
||||
set(VERSION "5.9")
|
||||
test_path(prefix2 prefix2/include/lua5.9 5.9)
|
||||
set(VERSION "5.9" EXACT)
|
||||
test_path(prefix2 prefix2/include/lua5.9 5.9)
|
||||
|
||||
# Set LUA_INCLUDE_DIR (non-cache) to unsuitable version
|
||||
set(LUA_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/prefix2/include/lua5.2)
|
||||
set(VERSION "5.1" EXACT)
|
||||
test_path(prefix2 prefix2/include/lua5.1 5.1)
|
3
Tests/RunCMake/FindLua/RunCMakeTest.cmake
Normal file
3
Tests/RunCMake/FindLua/RunCMakeTest.cmake
Normal file
@ -0,0 +1,3 @@
|
||||
include(RunCMake)
|
||||
|
||||
run_cmake(FindLuaTest)
|
8
Tests/RunCMake/FindLua/prefix1/include/lua.h
Normal file
8
Tests/RunCMake/FindLua/prefix1/include/lua.h
Normal file
@ -0,0 +1,8 @@
|
||||
|
||||
#define LUA_VERSION_MAJOR "5"
|
||||
#define LUA_VERSION_MINOR "3"
|
||||
#define LUA_VERSION_NUM 503
|
||||
#define LUA_VERSION_RELEASE "4"
|
||||
|
||||
#define LUA_VERSION "Lua " LUA_VERSION_MAJOR "." LUA_VERSION_MINOR
|
||||
#define LUA_RELEASE LUA_VERSION "." LUA_VERSION_RELEASE
|
8
Tests/RunCMake/FindLua/prefix2/include/lua5.1/lua.h
Normal file
8
Tests/RunCMake/FindLua/prefix2/include/lua5.1/lua.h
Normal file
@ -0,0 +1,8 @@
|
||||
|
||||
#define LUA_VERSION_MAJOR "5"
|
||||
#define LUA_VERSION_MINOR "1"
|
||||
#define LUA_VERSION_NUM 501
|
||||
#define LUA_VERSION_RELEASE "4"
|
||||
|
||||
#define LUA_VERSION "Lua " LUA_VERSION_MAJOR "." LUA_VERSION_MINOR
|
||||
#define LUA_RELEASE LUA_VERSION "." LUA_VERSION_RELEASE
|
8
Tests/RunCMake/FindLua/prefix2/include/lua5.2/lua.h
Normal file
8
Tests/RunCMake/FindLua/prefix2/include/lua5.2/lua.h
Normal file
@ -0,0 +1,8 @@
|
||||
|
||||
#define LUA_VERSION_MAJOR "5"
|
||||
#define LUA_VERSION_MINOR "2"
|
||||
#define LUA_VERSION_NUM 502
|
||||
#define LUA_VERSION_RELEASE "4"
|
||||
|
||||
#define LUA_VERSION "Lua " LUA_VERSION_MAJOR "." LUA_VERSION_MINOR
|
||||
#define LUA_RELEASE LUA_VERSION "." LUA_VERSION_RELEASE
|
8
Tests/RunCMake/FindLua/prefix2/include/lua5.3/lua.h
Normal file
8
Tests/RunCMake/FindLua/prefix2/include/lua5.3/lua.h
Normal file
@ -0,0 +1,8 @@
|
||||
|
||||
#define LUA_VERSION_MAJOR "5"
|
||||
#define LUA_VERSION_MINOR "3"
|
||||
#define LUA_VERSION_NUM 503
|
||||
#define LUA_VERSION_RELEASE "4"
|
||||
|
||||
#define LUA_VERSION "Lua " LUA_VERSION_MAJOR "." LUA_VERSION_MINOR
|
||||
#define LUA_RELEASE LUA_VERSION "." LUA_VERSION_RELEASE
|
8
Tests/RunCMake/FindLua/prefix2/include/lua5.9/lua.h
Normal file
8
Tests/RunCMake/FindLua/prefix2/include/lua5.9/lua.h
Normal file
@ -0,0 +1,8 @@
|
||||
|
||||
#define LUA_VERSION_MAJOR "5"
|
||||
#define LUA_VERSION_MINOR "9"
|
||||
#define LUA_VERSION_NUM 509
|
||||
#define LUA_VERSION_RELEASE "4"
|
||||
|
||||
#define LUA_VERSION "Lua " LUA_VERSION_MAJOR "." LUA_VERSION_MINOR
|
||||
#define LUA_RELEASE LUA_VERSION "." LUA_VERSION_RELEASE
|
Loading…
Reference in New Issue
Block a user