mirror of
https://github.com/kevinbentley/Descent3.git
synced 2026-04-04 20:00:04 -04:00
Merge pull request #318 from winterheart/install-targets
Introducing installation steps
This commit is contained in:
8
.github/workflows/build.yml
vendored
8
.github/workflows/build.yml
vendored
@@ -78,7 +78,7 @@ jobs:
|
||||
CC: ${{ matrix.os.cc }}
|
||||
CXX: ${{ matrix.os.cxx }}
|
||||
VCPKG_ROOT: C:/vcpkg
|
||||
run: cmake --preset ${{ matrix.os.preset }} -DBUILD_TESTING=ON -DENABLE_LOGGER=ON
|
||||
run: cmake --preset ${{ matrix.os.preset }} -DBUILD_TESTING=ON -DENABLE_LOGGER=ON -DFORCE_PORTABLE_INSTALL=ON
|
||||
|
||||
- name: Build ${{ matrix.build_type }}
|
||||
run: cmake --build --preset ${{ matrix.os.preset }} --config ${{ matrix.build_type }} --verbose
|
||||
@@ -86,8 +86,12 @@ jobs:
|
||||
- name: Run ${{ matrix.build_type }} Unittests
|
||||
run: ctest --preset ${{ matrix.os.preset }} -C ${{ matrix.build_type }}
|
||||
|
||||
- name: Local install
|
||||
# There no cmake install presets so install in traditional way
|
||||
run: cmake --install builds/${{ matrix.os.preset }}/ --config ${{ matrix.build_type }}
|
||||
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Descent3_${{ matrix.build_type }}_${{ matrix.os.name }}
|
||||
path: ${{ github.workspace }}/builds/${{ matrix.os.preset }}/Descent3/${{ matrix.build_type }}/
|
||||
path: ${{ github.workspace }}/builds/${{ matrix.os.preset }}/installed/
|
||||
|
||||
@@ -11,6 +11,7 @@ project(Descent3
|
||||
)
|
||||
|
||||
option(FORCE_COLORED_OUTPUT "Always produce ANSI-colored compiler warnings/errors (GCC/Clang only; esp. useful with ninja)." OFF)
|
||||
option(FORCE_PORTABLE_INSTALL "Install all files into local directory defined by CMAKE_INSTALL_PREFIX" ON)
|
||||
option(ENABLE_LOGGER "Enable logging to the terminal" OFF)
|
||||
option(BUILD_TESTING "Enable testing. Requires GTest." OFF)
|
||||
|
||||
@@ -31,6 +32,18 @@ if(FORCE_COLORED_OUTPUT)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
include(GNUInstallDirs)
|
||||
if(FORCE_PORTABLE_INSTALL)
|
||||
set(CMAKE_INSTALL_BINDIR ".")
|
||||
set(CMAKE_INSTALL_LIBDIR ".")
|
||||
set(CMAKE_INSTALL_DATADIR ".")
|
||||
set(CMAKE_INSTALL_DOCDIR ".")
|
||||
endif()
|
||||
|
||||
if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
|
||||
set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/installed" CACHE PATH "Default install path" FORCE)
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_BYTE_ORDER STREQUAL "BIG_ENDIAN")
|
||||
message(STATUS "Big Endian system detected.")
|
||||
add_compile_definitions("OUTRAGE_BIG_ENDIAN")
|
||||
@@ -63,14 +76,14 @@ add_custom_command(
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
)
|
||||
|
||||
install(FILES README.md LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
||||
|
||||
# rebuild version.hpp every time
|
||||
add_custom_target(get_git_hash ALL
|
||||
DEPENDS ${PROJECT_BINARY_DIR}/Descent3/d3_version.h
|
||||
)
|
||||
|
||||
if(UNIX)
|
||||
set(D3_GAMEDIR "~/Descent3/")
|
||||
|
||||
add_compile_options("$<$<COMPILE_LANGUAGE:CXX>:-Wno-multichar;${BITS};${EXTRA_CXX_FLAGS}>")
|
||||
add_compile_options("$<$<COMPILE_LANGUAGE:C>:${BITS}>")
|
||||
|
||||
|
||||
@@ -303,6 +303,7 @@ target_link_libraries(Descent3
|
||||
${PLATFORM_LIBS})
|
||||
target_include_directories(Descent3 PRIVATE ${PROJECT_BINARY_DIR}/lib)
|
||||
add_dependencies(Descent3 get_git_hash Direct_TCP_IP_Hog HogFull NetgamesDir)
|
||||
install(TARGETS Descent3 RUNTIME)
|
||||
|
||||
if(BUILD_TESTING)
|
||||
add_subdirectory(tests)
|
||||
|
||||
@@ -21,3 +21,4 @@ add_custom_target(Direct_TCP_IP_Hog
|
||||
DEPENDS Direct_TCP_IP HogMaker
|
||||
COMMENT "Generate 'Direct TCP~IP.d3c'"
|
||||
)
|
||||
install(FILES "$<TARGET_FILE_DIR:Descent3>/online/Direct TCP~IP.d3c" DESTINATION ${CMAKE_INSTALL_DATADIR}/online)
|
||||
|
||||
@@ -9,3 +9,4 @@ set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "")
|
||||
set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m")
|
||||
|
||||
target_link_libraries(${NETGAME_MODULE} dmfc)
|
||||
install(TARGETS "${NETGAME_MODULE}" DESTINATION ${CMAKE_INSTALL_LIBDIR}/netgames)
|
||||
|
||||
@@ -9,3 +9,4 @@ set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "")
|
||||
set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m")
|
||||
|
||||
target_link_libraries(${NETGAME_MODULE} dmfc)
|
||||
install(TARGETS "${NETGAME_MODULE}" DESTINATION ${CMAKE_INSTALL_LIBDIR}/netgames)
|
||||
|
||||
@@ -9,3 +9,4 @@ set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "")
|
||||
set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m")
|
||||
|
||||
target_link_libraries(${NETGAME_MODULE} dmfc)
|
||||
install(TARGETS "${NETGAME_MODULE}" DESTINATION ${CMAKE_INSTALL_LIBDIR}/netgames)
|
||||
|
||||
@@ -9,3 +9,4 @@ set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "")
|
||||
set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m")
|
||||
|
||||
target_link_libraries(${NETGAME_MODULE} dmfc)
|
||||
install(TARGETS "${NETGAME_MODULE}" DESTINATION ${CMAKE_INSTALL_LIBDIR}/netgames)
|
||||
|
||||
@@ -9,3 +9,4 @@ set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "")
|
||||
set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m")
|
||||
|
||||
target_link_libraries(${NETGAME_MODULE} dmfc)
|
||||
install(TARGETS "${NETGAME_MODULE}" DESTINATION ${CMAKE_INSTALL_LIBDIR}/netgames)
|
||||
|
||||
@@ -9,3 +9,4 @@ set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "")
|
||||
set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m")
|
||||
|
||||
target_link_libraries(${NETGAME_MODULE} dmfc)
|
||||
install(TARGETS "${NETGAME_MODULE}" DESTINATION ${CMAKE_INSTALL_LIBDIR}/netgames)
|
||||
|
||||
@@ -9,3 +9,4 @@ set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "")
|
||||
set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m")
|
||||
|
||||
target_link_libraries(${NETGAME_MODULE} dmfc)
|
||||
install(TARGETS "${NETGAME_MODULE}" DESTINATION ${CMAKE_INSTALL_LIBDIR}/netgames)
|
||||
|
||||
@@ -9,3 +9,4 @@ set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "")
|
||||
set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m")
|
||||
|
||||
target_link_libraries(${NETGAME_MODULE} dmfc)
|
||||
install(TARGETS "${NETGAME_MODULE}" DESTINATION ${CMAKE_INSTALL_LIBDIR}/netgames)
|
||||
|
||||
@@ -9,3 +9,4 @@ set_target_properties(${NETGAME_MODULE} PROPERTIES PREFIX "")
|
||||
set_target_properties(${NETGAME_MODULE} PROPERTIES SUFFIX ".d3m")
|
||||
|
||||
target_link_libraries(${NETGAME_MODULE} dmfc)
|
||||
install(TARGETS "${NETGAME_MODULE}" DESTINATION ${CMAKE_INSTALL_LIBDIR}/netgames)
|
||||
|
||||
@@ -95,6 +95,9 @@ add_custom_target(HogFull
|
||||
COMMENT "Generate fullhog/d3-${HOG_NAME}.hog"
|
||||
)
|
||||
|
||||
# Place file next to Descent3 executable on installation
|
||||
install(FILES "$<TARGET_FILE_DIR:Descent3>/d3-${HOG_NAME}.hog" DESTINATION ${CMAKE_INSTALL_DATADIR})
|
||||
|
||||
# FIXME: there may be only one d3-linux.hog, need deal with demo somehow.
|
||||
# add_custom_target(HogLinuxDemo
|
||||
# COMMAND $<TARGET_FILE:HogMaker>
|
||||
|
||||
Reference in New Issue
Block a user