misc/liblua/CMakeLists.txt
author Simon McVittie <smcv@debian.org>
Mon, 12 Sep 2022 10:40:53 -0400
branch1.0.0
changeset 15859 7b1d6dfa3173
parent 11659 71bdf987e41f
permissions -rw-r--r--
Remove FindSDL2 find-module, use sdl2-config.cmake instead This requires SDL >= 2.0.4. Since <https://bugzilla.libsdl.org/show_bug.cgi?id=2464> was fixed in SDL 2.0.4, SDL behaves as a CMake "config-file package", even if it was not itself built using CMake: it installs a sdl2-config.cmake file to ${libdir}/cmake/SDL2, which tells CMake where to find SDL's headers and library, analogous to a pkg-config .pc file. As a result, we no longer need to copy/paste a "find-module package" to be able to find a system copy of SDL >= 2.0.4 with find_package(SDL2). Find-module packages are now discouraged by the CMake developers, in favour of having upstream projects behave as config-file packages. This results in a small API change: FindSDL2 used to set SDL2_INCLUDE_DIR and SDL2_LIBRARY, but the standard behaviour for config-file packages is to set <name>_INCLUDE_DIRS and <name>_LIBRARIES. Use the CONFIG keyword to make sure we search in config-file package mode, and will not find a FindSDL2.cmake in some other directory that implements the old interface. In addition to deleting redundant code, this avoids some assumptions in FindSDL2 about the layout of a SDL installation. The current libsdl2-dev package in Debian breaks those assumptions; this is considered a bug and will hopefully be fixed soon, but it illustrates how fragile these assumptions can be. We can be more robust against different installation layouts by relying on SDL's own CMake integration. When linking to a copy of CMake in a non-standard location, users can now set the SDL2_DIR or CMAKE_PREFIX_PATH environment variable to point to it; previously, these users would have used the SDL2DIR environment variable. This continues to be unnecessary if using matching system-wide installations of CMake and SDL2, for example both from Debian.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7031
d5ea24399a48 when Lua is not found, fallback to compiling the one that comes bundled in our sources
koda
parents: 5171
diff changeset
     1
#this file is included only when system Lua library is not found
d5ea24399a48 when Lua is not found, fallback to compiling the one that comes bundled in our sources
koda
parents: 5171
diff changeset
     2
3697
d5b30d6373fc remove trailing spaces from end of line
koda
parents: 3244
diff changeset
     3
file(GLOB lua_src *.c *.h)
2822
0533562bc3a4 Engine:
smxx
parents: 2812
diff changeset
     4
7031
d5ea24399a48 when Lua is not found, fallback to compiling the one that comes bundled in our sources
koda
parents: 5171
diff changeset
     5
if(WIN32)
d5ea24399a48 when Lua is not found, fallback to compiling the one that comes bundled in our sources
koda
parents: 5171
diff changeset
     6
    add_definitions(-DLUA_BUILD_AS_DLL)
d5ea24399a48 when Lua is not found, fallback to compiling the one that comes bundled in our sources
koda
parents: 5171
diff changeset
     7
else(WIN32)
d5ea24399a48 when Lua is not found, fallback to compiling the one that comes bundled in our sources
koda
parents: 5171
diff changeset
     8
    add_definitions(-DLUA_USE_LINUX)
9205
abce6011f86c aaaaand let's not forget about lua, which has also a slightly revised build process
koda
parents: 8316
diff changeset
     9
    add_definitions(-fvisibility=default) #TODO: fixme
2822
0533562bc3a4 Engine:
smxx
parents: 2812
diff changeset
    10
endif(WIN32)
0533562bc3a4 Engine:
smxx
parents: 2812
diff changeset
    11
9205
abce6011f86c aaaaand let's not forget about lua, which has also a slightly revised build process
koda
parents: 8316
diff changeset
    12
add_library(lua ${lua_src})
abce6011f86c aaaaand let's not forget about lua, which has also a slightly revised build process
koda
parents: 8316
diff changeset
    13
abce6011f86c aaaaand let's not forget about lua, which has also a slightly revised build process
koda
parents: 8316
diff changeset
    14
set_target_properties(lua PROPERTIES
abce6011f86c aaaaand let's not forget about lua, which has also a slightly revised build process
koda
parents: 8316
diff changeset
    15
                          VERSION "5.1.4"
9208
acb2492288e5 heavily rework lua discovery and linking, needs testing but it's more similar to what we do for other libraries now
koda
parents: 9205
diff changeset
    16
                          SOVERSION 1
9213
e3d46d0bc7d0 code typos
koda
parents: 9208
diff changeset
    17
                          OUTPUT_NAME ${lua_output_name})
9205
abce6011f86c aaaaand let's not forget about lua, which has also a slightly revised build process
koda
parents: 8316
diff changeset
    18
install(TARGETS lua RUNTIME DESTINATION ${target_binary_install_dir}
abce6011f86c aaaaand let's not forget about lua, which has also a slightly revised build process
koda
parents: 8316
diff changeset
    19
                    LIBRARY DESTINATION ${target_library_install_dir}
abce6011f86c aaaaand let's not forget about lua, which has also a slightly revised build process
koda
parents: 8316
diff changeset
    20
                    ARCHIVE DESTINATION ${target_library_install_dir})
abce6011f86c aaaaand let's not forget about lua, which has also a slightly revised build process
koda
parents: 8316
diff changeset
    21
get_target_property(lua_fullpath lua LOCATION)
abce6011f86c aaaaand let's not forget about lua, which has also a slightly revised build process
koda
parents: 8316
diff changeset
    22
9208
acb2492288e5 heavily rework lua discovery and linking, needs testing but it's more similar to what we do for other libraries now
koda
parents: 9205
diff changeset
    23
set(LUA_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE STRING "Lua include dir" FORCE)
acb2492288e5 heavily rework lua discovery and linking, needs testing but it's more similar to what we do for other libraries now
koda
parents: 9205
diff changeset
    24
set(LUA_LIBRARY ${lua_fullpath} CACHE STRING "Lua library" FORCE)
2822
0533562bc3a4 Engine:
smxx
parents: 2812
diff changeset
    25
11659
71bdf987e41f Fully support emscripten toolchain in our build system
koda
parents: 10015
diff changeset
    26
#emscripten does not expose headers but has an internal binary copy
71bdf987e41f Fully support emscripten toolchain in our build system
koda
parents: 10015
diff changeset
    27
if(BUILD_ENGINE_JS)
71bdf987e41f Fully support emscripten toolchain in our build system
koda
parents: 10015
diff changeset
    28
    set(LUA_LIBRARY "lua_emscripten_internal" CACHE STRING "Lua library" FORCE)
71bdf987e41f Fully support emscripten toolchain in our build system
koda
parents: 10015
diff changeset
    29
endif()
2822
0533562bc3a4 Engine:
smxx
parents: 2812
diff changeset
    30