mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 11:26:18 -04:00
5b44aece75
* delete unused shaders * hide some options in debug menu * change fullscreen logic a bit * add "all actors" toggle * borderless fix and fix alpha in direct renderer untextured (do we need a separate shader for that?) * fix fuel cell orbit icons in widescreen * fix `curve` types * refs * fix levitator task... * fix some task stuff * update font code a bit (temp) * cmake, third-party and visual studio overhaul * Update .gitmodules * update modules * clone repos * fix encoding in zydis * where did these come from * try again * add submodule * Update 11zip * Update 11zip * Update 11zip * delete * try again * clang * update compiler flags * delete 11zip. go away. * Create memory-dump-p2s.py * properly * fix minimum architecture c++ compiler flags * fix zydis * oops * Update all-types.gc * fix clang-cl tests * make "all actors" work better, entity debug qol * update game-text conversion code to be more modularized * Create vendor.txt * fix typos and minor things * update refs * clang * Attempt to add clang-cl support to vs2019 and CI * vs2022 + clang-cl * srsly? fix clang build * Update launch.vs.json * extend windows CI timer
221 lines
5.7 KiB
CMake
Vendored
Generated
221 lines
5.7 KiB
CMake
Vendored
Generated
cmake_minimum_required(VERSION 3.5)
|
|
project(
|
|
replxx
|
|
# HOMEPAGE_URL "https://github.com/AmokHuginnsson/replxx"
|
|
# DESCRIPTION "replxx - Read Evaluate Print Loop library"
|
|
VERSION 0.0.4
|
|
LANGUAGES CXX C
|
|
)
|
|
|
|
if (NOT DEFINED CMAKE_CXX_STANDARD)
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
endif()
|
|
|
|
if (NOT DEFINED CMAKE_C_STANDARD)
|
|
set(CMAKE_C_STANDARD 99)
|
|
endif()
|
|
|
|
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_EXTENSIONS ON)
|
|
|
|
include(CMakePackageConfigHelpers)
|
|
include(CMakeDependentOption)
|
|
include(GenerateExportHeader)
|
|
include(GNUInstallDirs)
|
|
|
|
find_package(Threads)
|
|
|
|
cmake_dependent_option(
|
|
REPLXX_BUILD_EXAMPLES
|
|
"Build the examples" ON
|
|
"CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR" OFF
|
|
)
|
|
cmake_dependent_option(
|
|
REPLXX_BUILD_PACKAGE
|
|
"Generate package target" ON
|
|
"CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR" OFF
|
|
)
|
|
|
|
if (NOT CMAKE_BUILD_TYPE)
|
|
message(AUTHOR_WARNING "CMAKE_BUILD_TYPE not set. Defaulting to Release")
|
|
set(CMAKE_BUILD_TYPE Release)
|
|
endif()
|
|
|
|
# INFO
|
|
set(REPLXX_URL_INFO_ABOUT "https://github.com/AmokHuginnsson/replxx")
|
|
set(REPLXX_DISPLAY_NAME "replxx")
|
|
set(REPLXX_CONTACT "amok@codestation.org")
|
|
|
|
set(is-clang $<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:AppleClang>>)
|
|
set(is-msvc $<CXX_COMPILER_ID:MSVC>)
|
|
set(is-gnu $<CXX_COMPILER_ID:GNU>)
|
|
set(compiler-id-clang-or-gnu $<AND:$<OR:${is-clang},${is-gnu}>,$<NOT:${is-msvc}>>)
|
|
|
|
set(coverage-config $<AND:$<CONFIG:Coverage>,$<OR:${is-gnu},${is-clang}>>)
|
|
|
|
set(replxx-source-patterns "src/*.cpp" "src/*.cxx")
|
|
|
|
if (CMAKE_VERSION VERSION_GREATER 3.11)
|
|
list(INSERT replxx-source-patterns 0 CONFIGURE_DEPENDS)
|
|
endif()
|
|
|
|
file(GLOB replxx-sources ${replxx-source-patterns})
|
|
|
|
add_library(replxx ${replxx-sources})
|
|
add_library(replxx::replxx ALIAS replxx)
|
|
|
|
target_include_directories(
|
|
replxx
|
|
PUBLIC
|
|
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
|
|
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
PRIVATE
|
|
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>
|
|
)
|
|
target_compile_definitions(
|
|
replxx
|
|
PUBLIC
|
|
$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:REPLXX_STATIC>
|
|
$<$<BOOL:${BUILD_SHARED_LIBS}>:REPLXX_BUILDING_DLL>
|
|
PRIVATE
|
|
$<$<CXX_COMPILER_ID:MSVC>:_CRT_SECURE_NO_WARNINGS=1 /ignore:4503>
|
|
)
|
|
target_compile_options(
|
|
replxx
|
|
PRIVATE
|
|
$<$<AND:$<CONFIG:RelWithDebInfo>,${compiler-id-clang-or-gnu}>:-fomit-frame-pointer>
|
|
$<$<AND:$<CONFIG:MinSizeRel>,${compiler-id-clang-or-gnu}>:-Os>
|
|
$<$<AND:$<CONFIG:Debug>,$<CXX_COMPILER_ID:GNU>>:-g -ggdb -g3 -ggdb3>
|
|
$<${coverage-config}:-O0 --coverage>
|
|
$<${coverage-config}:-fno-inline -fno-default-inline>
|
|
$<${coverage-config}:-fno-inline-small-functions>
|
|
$<${compiler-id-clang-or-gnu}:-Wall -Wextra>
|
|
$<$<CXX_COMPILER_ID:GNU>:-Wno-unknown-pragmas>
|
|
)
|
|
if (NOT CMAKE_VERSION VERSION_LESS 3.13)
|
|
target_link_options(
|
|
replxx
|
|
PRIVATE
|
|
$<${coverage-config}:--coverage>
|
|
$<${is-msvc}:/ignore:4099>
|
|
)
|
|
else()
|
|
# "safest" way prior to 3.13
|
|
target_link_libraries(
|
|
replxx
|
|
PRIVATE
|
|
$<${coverage-config}:--coverage>
|
|
$<${is-msvc}:/ignore:4099>
|
|
)
|
|
endif()
|
|
target_link_libraries(replxx PUBLIC Threads::Threads)
|
|
set_target_properties(replxx PROPERTIES VERSION ${PROJECT_VERSION})
|
|
|
|
set_property(TARGET replxx PROPERTY DEBUG_POSTFIX -d)
|
|
set_property(TARGET replxx PROPERTY RELWITHDEBINFO_POSTFIX -rd)
|
|
set_property(TARGET replxx PROPERTY MINSIZEREL_POSTFIX)
|
|
if ( NOT BUILD_SHARED_LIBS AND MSVC )
|
|
set_property(TARGET replxx PROPERTY OUTPUT_NAME replxx-static)
|
|
endif()
|
|
|
|
generate_export_header(replxx)
|
|
|
|
configure_package_config_file(
|
|
"${PROJECT_SOURCE_DIR}/replxx-config.cmake.in"
|
|
"${PROJECT_BINARY_DIR}/replxx-config.cmake"
|
|
INSTALL_DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/replxx
|
|
NO_CHECK_REQUIRED_COMPONENTS_MACRO
|
|
NO_SET_AND_CHECK_MACRO
|
|
)
|
|
|
|
write_basic_package_version_file(
|
|
"${PROJECT_BINARY_DIR}/replxx-config-version.cmake"
|
|
COMPATIBILITY AnyNewerVersion
|
|
)
|
|
|
|
install(
|
|
TARGETS replxx EXPORT replxx-targets
|
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
)
|
|
|
|
install(
|
|
EXPORT replxx-targets
|
|
NAMESPACE replxx::
|
|
DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/replxx
|
|
)
|
|
|
|
install(
|
|
FILES
|
|
"${PROJECT_BINARY_DIR}/replxx-config-version.cmake"
|
|
"${PROJECT_BINARY_DIR}/replxx-config.cmake"
|
|
DESTINATION
|
|
${CMAKE_INSTALL_DATADIR}/cmake/replxx
|
|
)
|
|
|
|
# headers
|
|
install(
|
|
FILES
|
|
include/replxx.hxx
|
|
include/replxx.h
|
|
DESTINATION
|
|
${CMAKE_INSTALL_INCLUDEDIR}
|
|
)
|
|
|
|
if (REPLXX_BUILD_EXAMPLES)
|
|
add_executable(replxx-example-cxx-api "")
|
|
add_executable(replxx-example-c-api "")
|
|
|
|
target_sources(
|
|
replxx-example-cxx-api
|
|
PRIVATE
|
|
examples/cxx-api.cxx
|
|
examples/util.c
|
|
)
|
|
target_sources(
|
|
replxx-example-c-api
|
|
PRIVATE
|
|
examples/c-api.c
|
|
examples/util.c
|
|
)
|
|
target_compile_definitions(replxx-example-cxx-api PRIVATE REPLXX_STATIC $<$<CXX_COMPILER_ID:MSVC>:_CRT_SECURE_NO_WARNINGS=1>)
|
|
target_compile_definitions(replxx-example-c-api PRIVATE REPLXX_STATIC $<$<CXX_COMPILER_ID:MSVC>:_CRT_SECURE_NO_WARNINGS=1>)
|
|
target_link_libraries(replxx-example-cxx-api PRIVATE replxx::replxx)
|
|
target_link_libraries(
|
|
replxx-example-c-api
|
|
PRIVATE
|
|
replxx::replxx
|
|
$<${compiler-id-clang-or-gnu}:stdc++>
|
|
$<${is-clang}:m>
|
|
$<${coverage-config}:--coverage>
|
|
)
|
|
target_link_libraries(
|
|
replxx-example-cxx-api
|
|
PRIVATE
|
|
$<${coverage-config}:--coverage>
|
|
)
|
|
endif()
|
|
|
|
if (NOT REPLXX_BUILD_PACKAGE)
|
|
return()
|
|
endif()
|
|
|
|
include(CPack)
|
|
|
|
set(CPACK_SET_DESTDIR ON)
|
|
|
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Readline and libedit replacement library")
|
|
set(CPACK_PACKAGE_HOMEPAGE_URL "${REPLXX_URL_INFO_ABOUT}")
|
|
set(CPACK_PACKAGE_VENDOR "codestation.org")
|
|
set(CPACK_PACKAGE_CONTACT "amok@codestation.org")
|
|
set(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}")
|
|
|
|
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/LICENSE")
|
|
|
|
set(CPACK_STRIP_FILES "ON")
|
|
|
|
set(CPACK_DEBIAN_PACKAGE_SECTION "utilities")
|
|
|