CMake install target fixes
This commit is contained in:
4
.github/workflows/cmake.yml
vendored
4
.github/workflows/cmake.yml
vendored
@@ -84,7 +84,7 @@ jobs:
|
|||||||
- uses: actions/upload-artifact@v2
|
- uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: '86Box-${{ matrix.build.name }}-MSYS2-${{ matrix.environment.msystem }}-${{ github.sha }}'
|
name: '86Box-${{ matrix.build.name }}-MSYS2-${{ matrix.environment.msystem }}-${{ github.sha }}'
|
||||||
path: build/artifacts/bin/**
|
path: build/artifacts/**
|
||||||
|
|
||||||
vs2019:
|
vs2019:
|
||||||
name: VS2019 ${{ matrix.build.name }} ${{ matrix.target-arch }} build (${{ matrix.toolset }})
|
name: VS2019 ${{ matrix.build.name }} ${{ matrix.target-arch }} build (${{ matrix.toolset }})
|
||||||
@@ -130,7 +130,7 @@ jobs:
|
|||||||
- uses: actions/upload-artifact@v2
|
- uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: '86Box-${{ matrix.build.name }}-VS2019-${{ matrix.target-arch }}-${{ matrix.toolset }}-${{ github.sha }}'
|
name: '86Box-${{ matrix.build.name }}-VS2019-${{ matrix.target-arch }}-${{ matrix.toolset }}-${{ github.sha }}'
|
||||||
path: build/artifacts/bin/**
|
path: build/artifacts/**
|
||||||
|
|
||||||
linux:
|
linux:
|
||||||
name: "Linux GCC 11"
|
name: "Linux GCC 11"
|
||||||
|
@@ -143,10 +143,11 @@ if(MINITRACE)
|
|||||||
target_link_libraries(86Box minitrace)
|
target_link_libraries(86Box minitrace)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(APPLE)
|
if(WIN32 OR APPLE)
|
||||||
# `install` fails on Mac if the destination is omitted
|
# Copy the binary to the root of the install prefix on Windows and macOS
|
||||||
install(TARGETS 86Box DESTINATION "bin")
|
install(TARGETS 86Box DESTINATION ".")
|
||||||
else()
|
else()
|
||||||
|
# On Linux we want to copy the binary to the `bin` folder.
|
||||||
install(TARGETS 86Box)
|
install(TARGETS 86Box)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -155,20 +156,30 @@ if(APPLE)
|
|||||||
install(CODE "
|
install(CODE "
|
||||||
include(BundleUtilities)
|
include(BundleUtilities)
|
||||||
get_filename_component(CMAKE_INSTALL_PREFIX_ABSOLUTE \${CMAKE_INSTALL_PREFIX} ABSOLUTE)
|
get_filename_component(CMAKE_INSTALL_PREFIX_ABSOLUTE \${CMAKE_INSTALL_PREFIX} ABSOLUTE)
|
||||||
fixup_bundle(\"\${CMAKE_INSTALL_PREFIX_ABSOLUTE}/bin/86Box.app\" \"\" \"\")"
|
fixup_bundle(\"\${CMAKE_INSTALL_PREFIX_ABSOLUTE}/86Box.app\" \"\" \"\")"
|
||||||
COMPONENT Runtime)
|
COMPONENT Runtime)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Install our dependencies if using vcpkg
|
# Install our dependencies if using vcpkg
|
||||||
if(VCPKG_TOOLCHAIN)
|
if(VCPKG_TOOLCHAIN)
|
||||||
x_vcpkg_install_local_dependencies(TARGETS 86Box DESTINATION "bin")
|
x_vcpkg_install_local_dependencies(TARGETS 86Box DESTINATION ".")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Install the PDB file on MSVC builds (i.e. LLVM on Windows+vcpkg)
|
# Install the PDB file on Windows builds
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
|
# CMake fully supports PDB files on MSVC-compatible compilers
|
||||||
install(FILES $<TARGET_PDB_FILE:86Box>
|
install(FILES $<TARGET_PDB_FILE:86Box>
|
||||||
CONFIGURATIONS Debug RelWithDebInfo
|
CONFIGURATIONS Debug RelWithDebInfo
|
||||||
DESTINATION "bin")
|
DESTINATION ".")
|
||||||
|
elseif(WIN32)
|
||||||
|
# Other compilers/linkers (such as Clang in GCC-compatible mode) also
|
||||||
|
# emit PDB files when targeting Windows, however, CMake only supports
|
||||||
|
# the relevant properties with MSVC and clones. Try to install
|
||||||
|
# the PDB file assuming it's in the same path as the EXE.
|
||||||
|
install(FILES "$<TARGET_FILE_DIR:86Box>/$<TARGET_FILE_BASE_NAME:86Box>.pdb"
|
||||||
|
CONFIGURATIONS Debug RelWithDebInfo
|
||||||
|
DESTINATION "."
|
||||||
|
OPTIONAL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_subdirectory(device)
|
add_subdirectory(device)
|
||||||
|
Reference in New Issue
Block a user