mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Build: Normalize executable locations in build directory for all platforms
This commit is contained in:
18
.github/workflows/win-x64-build.yml
vendored
18
.github/workflows/win-x64-build.yml
vendored
@@ -7,6 +7,10 @@ on:
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-latest
|
||||
env:
|
||||
CMAKE_BUILD_TYPE: RelWithDebInfo
|
||||
MYSQL_ROOT_DIR: C:/Program Files/MySQL/MySQL Server 8.0
|
||||
OPENSSL_ROOT_DIR: C:/libs/openssl
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
@@ -16,11 +20,6 @@ jobs:
|
||||
run: |
|
||||
echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Set Environment Variables
|
||||
run: |
|
||||
echo "OPENSSL_ROOT_DIR=C:/libs/openssl" >> $env:GITHUB_ENV
|
||||
echo "MYSQL_ROOT_DIR=C:/Program Files/MySQL/MySQL Server 8.0" >> $env:GITHUB_ENV
|
||||
|
||||
- name: Get current OpenSSL version
|
||||
id: openssl-info
|
||||
run: |
|
||||
@@ -37,7 +36,7 @@ jobs:
|
||||
Where-Object { $_.installer -eq 'exe' } |
|
||||
Sort-Object -Descending @{ Expression = { [version]$_.basever } } |
|
||||
Select-Object -First 1
|
||||
[System.String]::Format("cache-key=openssl-{0}-{1}-{2}", $openSSL.basever, $openSSL.arch, $openSSL.bits) >> $env:GITHUB_OUTPUT
|
||||
[System.String]::Format("cache-key=openssl-{0}-win-{1}-{2}", $openSSL.basever, $openSSL.arch, $openSSL.bits) >> $env:GITHUB_OUTPUT
|
||||
[System.String]::Format("url={0}", $openSSL.url) >> $env:GITHUB_OUTPUT
|
||||
|
||||
- name: Cache OpenSSL
|
||||
@@ -75,7 +74,6 @@ jobs:
|
||||
CFLAGS: /WX
|
||||
CXXFLAGS: /WX
|
||||
BOOST_ROOT: ${{ steps.install-boost.outputs.BOOST_ROOT }}
|
||||
CMAKE_BUILD_TYPE: RelWithDebInfo
|
||||
run: >
|
||||
cmake -GNinja -S ${{ github.workspace }} -B ${{ steps.strings.outputs.build-output-dir }}
|
||||
-DTOOLS=ON
|
||||
@@ -86,7 +84,7 @@ jobs:
|
||||
|
||||
- name: Copy Dependencies
|
||||
run: |
|
||||
cd ${{ steps.strings.outputs.build-output-dir }}/bin
|
||||
cd ${{ steps.strings.outputs.build-output-dir }}/bin/${{ env.CMAKE_BUILD_TYPE }}
|
||||
copy "${{ env.MYSQL_ROOT_DIR }}/lib/libmysql.dll" libmysql.dll
|
||||
copy "${{ env.OPENSSL_ROOT_DIR }}/bin/libssl-3-x64.dll" libssl-3-x64.dll
|
||||
copy "${{ env.OPENSSL_ROOT_DIR }}/bin/libcrypto-3-x64.dll" libcrypto-3-x64.dll
|
||||
@@ -94,14 +92,14 @@ jobs:
|
||||
|
||||
- name: Check binaries
|
||||
run: |
|
||||
cd ${{ steps.strings.outputs.build-output-dir }}/bin
|
||||
cd ${{ steps.strings.outputs.build-output-dir }}/bin/${{ env.CMAKE_BUILD_TYPE }}
|
||||
./bnetserver --version
|
||||
./worldserver --version
|
||||
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
path: ${{ steps.strings.outputs.build-output-dir }}/bin
|
||||
path: ${{ steps.strings.outputs.build-output-dir }}/bin/${{ env.CMAKE_BUILD_TYPE }}
|
||||
name: TrinityCoreMasterWin64VS2022
|
||||
# Set a custom retention for artifacts
|
||||
#retention-days: 7
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
# set up output paths for executable binaries (.exe-files, and .dll-files on DLL-capable platforms)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
|
||||
set(MSVC_EXPECTED_VERSION 19.32)
|
||||
set(MSVC_EXPECTED_VERSION_STRING "Microsoft Visual Studio 2022 17.2")
|
||||
|
||||
@@ -31,10 +28,6 @@ target_compile_options(trinity-compile-option-interface
|
||||
INTERFACE
|
||||
/permissive-)
|
||||
|
||||
# set up output paths ofr static libraries etc (commented out - shown here as an example only)
|
||||
#set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
#set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
|
||||
if(PLATFORM EQUAL 64)
|
||||
# This definition is necessary to work around a bug with Intellisense described
|
||||
# here: http://tinyurl.com/2cb428. Syntax highlighting is important for proper
|
||||
@@ -59,7 +52,6 @@ else()
|
||||
message(STATUS "MSVC: Disabled Safe Exception Handlers for debug builds")
|
||||
endif()
|
||||
|
||||
# msbuild/devenv don't set CMAKE_MAKE_PROGRAM, you can choose build type from a dropdown after generating projects
|
||||
if("${CMAKE_MAKE_PROGRAM}" MATCHES "MSBuild")
|
||||
# multithreaded compiling on VS
|
||||
target_compile_options(trinity-compile-option-interface
|
||||
|
||||
@@ -46,6 +46,10 @@ if(APPLE)
|
||||
endif()
|
||||
|
||||
message(STATUS "UNIX: Detected compiler: ${CMAKE_C_COMPILER}")
|
||||
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/$<CONFIG>/bin")
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/$<CONFIG>/lib")
|
||||
|
||||
if(CMAKE_C_COMPILER MATCHES "gcc" OR CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/compiler/gcc/settings.cmake)
|
||||
elseif(CMAKE_C_COMPILER MATCHES "icc")
|
||||
|
||||
@@ -4,6 +4,9 @@ add_definitions(-DWIN32_LEAN_AND_MEAN)
|
||||
add_definitions(-DNOMINMAX)
|
||||
add_definitions(-DTRINITY_REQUIRED_WINDOWS_BUILD=18362)
|
||||
|
||||
# set up output paths for executable binaries (.exe-files, and .dll-files on DLL-capable platforms)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/$<CONFIG>")
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" OR CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/compiler/msvc/settings.cmake)
|
||||
elseif(CMAKE_CXX_PLATFORM_ID MATCHES "MinGW")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# output generic information about the core and buildtype chosen
|
||||
message("")
|
||||
message("* TrinityCore revision : ${rev_hash} ${rev_date} (${rev_branch} branch)")
|
||||
if(NOT "${CMAKE_MAKE_PROGRAM}" MATCHES "MSBuild")
|
||||
if(NOT ("${CMAKE_GENERATOR}" MATCHES "Visual Studio" OR "${CMAKE_GENERATOR}" STREQUAL "Ninja Multi-Config"))
|
||||
message("* TrinityCore buildtype : ${CMAKE_BUILD_TYPE}")
|
||||
endif()
|
||||
message("")
|
||||
|
||||
@@ -64,45 +64,29 @@ set_target_properties(bnetserver
|
||||
FOLDER
|
||||
"server")
|
||||
|
||||
if (COPY_CONF AND WIN32)
|
||||
if ("${CMAKE_MAKE_PROGRAM}" MATCHES "MSBuild")
|
||||
add_custom_command(TARGET bnetserver
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bnetserver.conf.dist ${CMAKE_BINARY_DIR}/bin/$(ConfigurationName)/
|
||||
)
|
||||
else ()
|
||||
add_custom_command(TARGET bnetserver
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bnetserver.conf.dist ${CMAKE_BINARY_DIR}/bin/
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
if ("${CMAKE_MAKE_PROGRAM}" MATCHES "MSBuild")
|
||||
add_custom_command(TARGET bnetserver
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bnetserver.cert.pem ${CMAKE_BINARY_DIR}/bin/$(ConfigurationName)/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bnetserver.key.pem ${CMAKE_BINARY_DIR}/bin/$(ConfigurationName)/
|
||||
)
|
||||
else ()
|
||||
add_custom_command(TARGET bnetserver
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bnetserver.cert.pem ${CMAKE_BINARY_DIR}/bin/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bnetserver.key.pem ${CMAKE_BINARY_DIR}/bin/
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
add_custom_command(TARGET bnetserver
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bnetserver.cert.pem ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/bnetserver.cert.pem
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bnetserver.key.pem ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/bnetserver.key.pem
|
||||
)
|
||||
|
||||
if (UNIX)
|
||||
install(TARGETS bnetserver DESTINATION bin)
|
||||
if (COPY_CONF)
|
||||
add_custom_command(TARGET bnetserver
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bnetserver.conf.dist ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/../etc/bnetserver.conf.dist
|
||||
)
|
||||
install(FILES bnetserver.conf.dist DESTINATION ${CONF_DIR})
|
||||
endif()
|
||||
install(FILES bnetserver.cert.pem bnetserver.key.pem DESTINATION bin)
|
||||
elseif (WIN32)
|
||||
install(TARGETS bnetserver DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
if (COPY_CONF)
|
||||
add_custom_command(TARGET bnetserver
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/bnetserver.conf.dist ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/bnetserver.conf.dist
|
||||
)
|
||||
install(FILES bnetserver.conf.dist DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
endif()
|
||||
install(FILES bnetserver.cert.pem bnetserver.key.pem DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
|
||||
@@ -76,28 +76,22 @@ if(WORLDSERVER_DYNAMIC_SCRIPT_MODULES_DEPENDENCIES)
|
||||
add_dependencies(worldserver ${WORLDSERVER_DYNAMIC_SCRIPT_MODULES_DEPENDENCIES})
|
||||
endif()
|
||||
|
||||
if(COPY_CONF AND WIN32)
|
||||
if("${CMAKE_MAKE_PROGRAM}" MATCHES "MSBuild")
|
||||
add_custom_command(TARGET worldserver
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/worldserver.conf.dist ${CMAKE_BINARY_DIR}/bin/$(ConfigurationName)/
|
||||
)
|
||||
else()
|
||||
add_custom_command(TARGET worldserver
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/worldserver.conf.dist ${CMAKE_BINARY_DIR}/bin/
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(UNIX)
|
||||
install(TARGETS worldserver DESTINATION bin)
|
||||
if(COPY_CONF)
|
||||
add_custom_command(TARGET worldserver
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/worldserver.conf.dist ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/../etc/worldserver.conf.dist
|
||||
)
|
||||
install(FILES worldserver.conf.dist DESTINATION ${CONF_DIR})
|
||||
endif()
|
||||
elseif(WIN32)
|
||||
install(TARGETS worldserver DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
if(COPY_CONF)
|
||||
add_custom_command(TARGET worldserver
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/worldserver.conf.dist ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/
|
||||
)
|
||||
install(FILES worldserver.conf.dist DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user