diff options
author | Andy Belle-Isle <drumsetmonkey@gmail.com> | 2019-08-30 00:45:36 -0400 |
---|---|---|
committer | Andy Belle-Isle <drumsetmonkey@gmail.com> | 2019-08-30 00:45:36 -0400 |
commit | dc2493e7525bb7633f697ef10f72b72b46222249 (patch) | |
tree | 9816755219e65d3f47fdce81c78f3736a7ddb8ab /deps/sol2/CMakeLists.txt | |
parent | 9d2b31797d0cfd130802b69261df2cd402e39b49 (diff) |
Forget what I said, I just need to change git attributes to mark for vendor
Diffstat (limited to 'deps/sol2/CMakeLists.txt')
-rw-r--r-- | deps/sol2/CMakeLists.txt | 306 |
1 files changed, 0 insertions, 306 deletions
diff --git a/deps/sol2/CMakeLists.txt b/deps/sol2/CMakeLists.txt deleted file mode 100644 index a4814a3..0000000 --- a/deps/sol2/CMakeLists.txt +++ /dev/null @@ -1,306 +0,0 @@ -# # # # sol3 -# The MIT License (MIT) -# -# Copyright (c) 2013-2019 Rapptz, ThePhD, and contributors -# -# Permission is hereby granted, free of charge, to any person obtaining a copy of -# this software and associated documentation files (the "Software"), to deal in -# the Software without restriction, including without limitation the rights to -# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -# the Software, and to permit persons to whom the Software is furnished to do so, -# subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -# # # # sol3 -# # # Required minimum version statement -cmake_minimum_required(VERSION 3.5.0) - -# # # project declaration -project(sol2 VERSION 3.0.0 LANGUAGES CXX C) - -include(GNUInstallDirs) - -# # # Modules -# # Include modules useful to the project, whether locally made in our own cmake DIRECTORY -# # our from the standard cmake libraries -# Add home-rolled modules path to front of module path list -set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules" "${CMAKE_MODULE_PATH}") - -# Include standard modules -include(CMakeDependentOption) -include(CMakePackageConfigHelpers) - - -# # # Configuration -# # Cached defines, strings, paths and options -set(SOL2_LUA_VERSION "5.3.5" CACHE STRING "The version of Lua needed. Can be 5.1, 5.2, 5.3, 5.4, LuaJIT, or a more specific 3-part version number for a specifc Lua (e.g., 5.3.4 or luajit-2.0.5)") -set(SOL2_BUILD_LUA TRUE CACHE BOOL "Always build Lua, do not search for it in the system") -set(SOL2_PLATFORM "x64" CACHE STRING "Target platform to compile for when building binaries (x86, x64)") -option(SOL2_CI "Whether or not we are in continguous integration mode" OFF) -option(SOL2_TESTS "Enable build of tests" OFF) -option(SOL2_EXAMPLES "Enable build of examples" OFF) -option(SOL2_INTEROP_EXAMPLES "Enable build of interop examples" OFF) -option(SOL2_DYNAMIC_LOADING_EXAMPLES "Enable build of interop examples" OFF) -option(SOL2_GENERATE_SINGLE "Enable generation and build of single header files" OFF) -option(SOL2_SINGLE "Enable use of prepackaged single header files" OFF) -option(SOL2_DOCS "Enable build of documentation" OFF) -# Single tests and examples tests will only be turned on if both SINGLE and TESTS are defined -CMAKE_DEPENDENT_OPTION(SOL2_TESTS_SINGLE "Enable build of tests using the premade single headers" ON - "SOL2_SINGLE;SOL2_TESTS" OFF) -CMAKE_DEPENDENT_OPTION(SOL2_TESTS_SINGLE_GENERATED "Enable build of tests using the generated single headers" ON - "SOL2_GENERATE_SINGLE;SOL2_TESTS" OFF) -CMAKE_DEPENDENT_OPTION(SOL2_EXAMPLES_SINGLE "Enable build of examples using the generated single headers" OFF - "SOL2_SINGLE;SOL2_EXAMPLES" OFF) -CMAKE_DEPENDENT_OPTION(SOL2_EXAMPLES_SINGLE_GENERATED "Enable build of examples using the premade single headers" OFF - "SOL2_GENERATE_SINGLE;SOL2_EXAMPLES" OFF) -CMAKE_DEPENDENT_OPTION(SOL2_INTEROP_EXAMPLES_SINGLE "Enable build of interop examples using the generated single headers" OFF - "SOL2_SINGLE;SOL2_INTEROP_EXAMPLES" OFF) -CMAKE_DEPENDENT_OPTION(SOL2_INTEROP_EXAMPLES_SINGLE_GENERATED "Enable build of interop examples using the generated single headers" OFF - "SOL2_GENERATE_SINGLE;SOL2_INTEROP_EXAMPLES" OFF) -CMAKE_DEPENDENT_OPTION(SOL2_DYNAMIC_LOADING_EXAMPLES_SINGLE "Enable build of dynamic loading examples using the generated single headers" OFF - "SOL2_SINGLE;SOL2_DYNAMIC_LOADING_EXAMPLES" OFF) -CMAKE_DEPENDENT_OPTION(SOL2_DYNAMIC_LOADING_EXAMPLES_SINGLE_GENERATED "Enable build of dynamic loading examples using the generated single headers" OFF - "SOL2_GENERATE_SINGLE;SOL2_DYNAMIC_LOADING_EXAMPLES" OFF) -CMAKE_DEPENDENT_OPTION(SOL2_TESTS_EXAMPLES "Enable build of examples as tests" ON - "SOL2_EXAMPLES" OFF) -CMAKE_DEPENDENT_OPTION(SOL2_TESTS_INTEROP_EXAMPLES "Enable build of interop examples as tests" ON - "SOL2_INTEROP_EXAMPLES" OFF) -CMAKE_DEPENDENT_OPTION(SOL2_TESTS_DYNAMIC_LOADING_EXAMPLES "Enable build of dynamic loading examples as tests" ON - "SOL2_DYNAMIC_LOADING_EXAMPLES" OFF) -CMAKE_DEPENDENT_OPTION(BUILD_LUA_AS_DLL "Build Lua as a DLL" ON - "SOL2_BUILD_LUA" OFF) - - -# # # Platform -# Detect x86 and x64 stuff -if (SOL2_PLATFORM MATCHES "i686" OR SOL2_PLATFORM STREQUAL "x86") - set(IS_X86 TRUE) -elseif (SOL2_PLATFORM MATCHES "ARM64") - set(IS_ARM64 TRUE) - set(IS_X64 TRUE) -elseif (SOL2_PLATFORM MATCHES "ARM") - set(IS_ARM TRUE) -elseif (SOL2_PLATFORM MATCHES "x86_64" OR SOL2_PLATFORM STREQUAL "x64") - set(IS_X64 TRUE) -else() - set(IS_X64 TRUE) -endif() - - -# # # sol2 Source Groups -# # Sources everyone is going to need -# Header files -file(GLOB SOL2_HEADER_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/include/sol*.hpp) -source_group(sol2 FILES ${SOL2_HEADER_SOURCES}) - -# # # sol2 Library -# # Add a target for sol2's library to be included by external users -add_library(sol2 INTERFACE) -add_library(sol2::sol2 ALIAS sol2) -target_sources(sol2 INTERFACE ${SOL2_SINGLE_HEADER_SOURCES}) -set_target_properties(sol2 - PROPERTIES - EXPORT_NAME sol2::sol2) - -target_include_directories(sol2 INTERFACE - $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> - $<INSTALL_INTERFACE:include>) - -# # Version configurations -configure_package_config_file( - cmake/sol2-config.cmake.in - "${CMAKE_CURRENT_BINARY_DIR}/cmake/sol2-config.cmake" - INSTALL_DESTINATION lib/cmake/sol2 - NO_CHECK_REQUIRED_COMPONENTS_MACRO) - -write_basic_package_version_file( - "${CMAKE_CURRENT_BINARY_DIR}/cmake/sol2-config-version.cmake" - COMPATIBILITY AnyNewerVersion) - -export(TARGETS sol2 FILE "${CMAKE_CURRENT_BINARY_DIR}/cmake/sol2-targets.cmake") - -install(TARGETS sol2 - EXPORT sol2) - -install(EXPORT sol2 - FILE sol2-targets.cmake - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/sol2") - -install(DIRECTORY include/sol - DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") - -install(FILES - "${CMAKE_CURRENT_BINARY_DIR}/cmake/sol2-config.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/cmake/sol2-config-version.cmake" - DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/sol2") - -# # # Single header target -# Find Python3 for single header / forward header generation -if (SOL2_GENERATE_SINGLE OR SOL2_SINGLE) - message(STATUS "sol2 adding single...") - add_subdirectory(single) -endif() - -# # # documentation -# Generates the docs -if (SOL2_DOCS) - message(STATUS "sol2 adding docs...") - add_subdirectory(docs) -endif() - -# pkg-config support, except on Windows -if(NOT WIN32 OR NOT CMAKE_HOST_SYSTEM_NAME MATCHES Windows) - set(PKGCONFIG_INSTALL_DIR - "${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig" - CACHE PATH "Path where sol2.pc is installed") - - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/sol2.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/sol2.pc" @ONLY) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sol2.pc" DESTINATION "${PKGCONFIG_INSTALL_DIR}") -endif() - -if (SOL2_CI) - message(STATUS "sol2 Contiguous Integration is on") -endif() - -if (SOL2_EXAMPLES OR SOL2_TESTS_EXAMPLES OR SOL2_EXAMPLES_SINGLE OR SOL2_INTEROP_EXAMPLES OR SOL2_TESTS_INTEROP_EXAMPLES OR SOL2_INTEROP_EXAMPLES_SINGLE OR SOL2_DYNAMIC_LOADING_EXAMPLES OR SOL2_TESTS_DYNAMIC_LOADING_EXAMPLES OR SOL2_DYNAMIC_LOADING_EXAMPLES_SINGLE) - set(DO_EXAMPLES TRUE) -else() - set(DO_EXAMPLES FALSE) -endif() - -if (SOL2_TESTS OR SOL2_TESTS_SINGLE) - set(DO_TESTS TRUE) -else() - set(DO_TESTS FALSE) -endif() - -if (DO_TESTS OR SOL2_TESTS_EXAMPLES OR SOL2_TESTS_INTEROP_EXAMPLES OR SOL2_TESTS_DYNAMIC_LOADING_EXAMPLES) - set(ENABLE_TESTING TRUE) -else() - set(ENABLE_TESTING FALSE) -endif() - -# # # Tests, Examples and other CI suites that come with sol2 -if (DO_TESTS OR DO_EXAMPLES) - # # # General project output locations - if (IS_X86 OR CMAKE_SIZEOF_VOID_P EQUAL 4) - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/x86/lib") - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/x86/bin") - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/x86/bin") - else() - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/x64/lib") - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/x64/bin") - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/x64/bin") - endif() - - # # # Libraries - # Here, we pull in all the necessary libraries for building examples and tests - # Find threading library - if (NOT MSVC) - if (IS_X86) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32") - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -m32") - set(CMAKE_EXECUTABLE_LINKER_FLAGS "${CMAKE_EXECUTABLE_LINKER_FLAGS} -m32") - endif() - set(CMAKE_THREAD_PREFER_PTHREAD TRUE) - set(THREADS_PREFER_PTHREAD_FLAG TRUE) - else() - string(REGEX REPLACE "/W[0-4]" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS}) - string(REGEX REPLACE "/W[0-4]" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) - endif() - find_package(Threads REQUIRED) - - string(TOLOWER ${SOL2_LUA_VERSION} NORMALIZED_LUA_VERSION) - # Find way to get Lua: build if requested, or attempt to build if no matching version is found - if (SOL2_BUILD_LUA) - find_package(LuaBuild REQUIRED COMPONENTS ${SOL2_LUA_VERSION}) - elseif (NOT SOL2_LUA_VERSION) - find_package(LuaBuild REQUIRED) - else() - if (NORMALIZED_LUA_VERSION MATCHES "5.1") - set(CREATE_LUALIB_TARGET TRUE) - find_package(Lua 5.1 EXACT REQUIRED) - elseif(NORMALIZED_LUA_VERSION MATCHES "5.2") - set(CREATE_LUALIB_TARGET TRUE) - find_package(Lua 5.2 EXACT REQUIRED) - elseif(NORMALIZED_LUA_VERSION MATCHES "5.3") - set(CREATE_LUALIB_TARGET TRUE) - find_package(Lua 5.3 EXACT REQUIRED) - elseif(NORMALIZED_LUA_VERSION MATCHES "5.4") - set(CREATE_LUALIB_TARGET TRUE) - find_package(Lua 5.4 EXACT REQUIRED) - elseif(NORMALIZED_LUA_VERSION MATCHES "luajit") - set(CREATE_LUALIB_TARGET TRUE) - find_package(LuaJIT REQUIRED) - else() - find_package(LuaBuild ${SOL2_LUA_VERSION} REQUIRED) - endif() - endif() - - if (CREATE_LUALIB_TARGET AND LUA_FOUND) - set(lualib lua_imported_lib_${SOL2_LUA_VERSION}) - foreach(lua_search_lib ${LUA_LIBRARIES}) - get_filename_component(lsl_fname ${lua_search_lib} NAME) - if (lsl_fname MATCHES "lua" OR lsl_fname MATCHES "Lua" OR lsl_fname MATCHES "LUA") - if (lsl_fname MATCHES "\.so|\.dylib|\.dll") - set(lualibtype SHARED) - set(lualiblocation ${lua_search_lib}) - else() - set(lualibtype STATIC) - set(lualiblocation ${lua_search_lib}) - endif() - else() - set(LUA_SEARCH_DEPENDENCY_LIBS ${LUA_SEARCH_DEPENDENCY_LIBS} "${lua_search_lib}") - endif() - endforeach() - add_library(${lualib} ${lualibtype} IMPORTED) - set_target_properties(${lualib} - PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES ${LUA_INCLUDE_DIR} - INTERFACE_LINK_LIBRARIES ${LUA_SEARCH_DEPENDENCY_LIBS} - IMPORTED_LINK_INTERFACE_LANGUAGES C - IMPORTED_LOCATION ${lualiblocation}) - if (CMAKE_DL_LIBS) - set_property(TARGET ${lualib} - APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${CMAKE_DL_LIBS}) - endif() - set(LUA_LIBRARIES ${lualib}) - endif() - - if (NOT LUA_FOUND AND NOT LUABUILD_FOUND) - message(FATAL_ERROR "sol2 Lua \"${SOL2_LUA_VERSION}\" not found and could not be targeted for building") - endif() - - # # Enable test harness for regular, example or single tests - if (ENABLE_TESTING) - # enable ctest - message(STATUS "sol2 testing enabled") - enable_testing() - endif() - - # # # Examples - # # Enable examples to be built against the library - if (DO_EXAMPLES) - # NOTE: will also add to tests if TESTS is defined - message(STATUS "sol2 adding examples...") - add_subdirectory(examples "${CMAKE_BINARY_DIR}/examples") - endif() - - # # # Tests - # # Add tests here - if (DO_TESTS) - # add subdir to get going - message(STATUS "sol2 adding tests...") - add_subdirectory(tests "${CMAKE_BINARY_DIR}/tests") - endif() -endif() |