mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
Buildsystem: Clean up build-process on all platforms
- Windows: Use CMAKE_INSTALL_PREFIX as a 'final install' directory (thanks to paradox for the preload-handling) (New target INSTALL, -not- included as part of ALL_BUILD (must be specifically run for installation to start) - All: Build libmpq library (used for tools) - All: Build extractiontools with hardlinked mpq-library (no need to install it anymore) - All: Move jemalloc from being harddefined to using a CMake string (fixes issue 3378) (thanks to tru.bazoozoo for the idea, alternative added) --HG-- branch : trunk
This commit is contained in:
@@ -101,9 +101,18 @@ endif()
|
||||
#
|
||||
|
||||
if( PREFIX )
|
||||
set(CMAKE_INSTALL_PREFIX ${PREFIX})
|
||||
set(CMAKE_INSTALL_PREFIX "${PREFIX}")
|
||||
endif()
|
||||
|
||||
IF(WIN32)
|
||||
IF(NOT CYGWIN)
|
||||
IF(NOT CMAKE_INSTALL_PREFIX)
|
||||
SET(CMAKE_INSTALL_PREFIX
|
||||
"${CMAKE_BINARY_DIR}/bin")
|
||||
ENDIF(NOT CMAKE_INSTALL_PREFIX)
|
||||
ENDIF(NOT CYGWIN)
|
||||
ENDIF(WIN32)
|
||||
|
||||
#
|
||||
# Handle debugmode compiles (this will require further work for proper WIN32-setups)
|
||||
#
|
||||
@@ -117,24 +126,28 @@ endif()
|
||||
#
|
||||
|
||||
if( MSVC )
|
||||
# Set up MSVC to dump binaries in the <builddir>/bin/<buildtype>/ folder
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
# Set up MSVC to dump files in the <builddir>/bin/<buildtype>/ folder for testing builds before install
|
||||
|
||||
# executable binaries (.exe-files)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
|
||||
# dynamic linked libraries (.dll)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
|
||||
# statically linked libraries - commented out as it's not needed - shown here as an example only
|
||||
#set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
endif()
|
||||
|
||||
#
|
||||
# Set default configuration-directory (used on NIX-based platforms only)
|
||||
#
|
||||
|
||||
|
||||
if( NOT CONF_DIR )
|
||||
set(CONF_DIR ${CMAKE_INSTALL_PREFIX}/etc)
|
||||
endif()
|
||||
|
||||
set(LIBSDIR ${CMAKE_INSTALL_PREFIX}/lib)
|
||||
|
||||
|
||||
#####
|
||||
##### Build-preparation
|
||||
#####
|
||||
@@ -169,12 +182,12 @@ message("")
|
||||
# Output information about installation-directories and locations
|
||||
#
|
||||
|
||||
message("* Install core to : ${CMAKE_INSTALL_PREFIX}")
|
||||
if( UNIX )
|
||||
message("* Install core to : ${CMAKE_INSTALL_PREFIX}")
|
||||
message("* Install libraries to : ${LIBSDIR}")
|
||||
message("* Install configs to : ${CONF_DIR}")
|
||||
message("")
|
||||
endif()
|
||||
message("")
|
||||
|
||||
#
|
||||
# Show infomation about the options selected during configuration
|
||||
@@ -186,11 +199,24 @@ else()
|
||||
message("* Build servers : No")
|
||||
endif()
|
||||
|
||||
if( GAMEPCH )
|
||||
message("* Build game w/PCH : Yes (default)")
|
||||
else()
|
||||
message("* Build game w/PCH : No")
|
||||
endif()
|
||||
|
||||
if( SCRIPTS )
|
||||
message("* Build with scripts : Yes (default)")
|
||||
add_definitions(-DSCRIPTS)
|
||||
else()
|
||||
message("* Build with scripts : No")
|
||||
set(SCRIPTPCH 0)
|
||||
endif()
|
||||
|
||||
if( SCRIPTPCH )
|
||||
message("* Build scripts w/PCH : Yes (default)")
|
||||
else()
|
||||
message("* Build scripts w/PCH : No")
|
||||
endif()
|
||||
|
||||
if( TOOLS )
|
||||
@@ -209,18 +235,6 @@ else()
|
||||
message("* Build in debug-mode : No (default)")
|
||||
endif()
|
||||
|
||||
if( GAMEPCH )
|
||||
message("* Build game w/PCH : Yes (default)")
|
||||
else()
|
||||
message("* Build game w/PCH : No")
|
||||
endif()
|
||||
|
||||
if( SCRIPTPCH )
|
||||
message("* Build scripts w/PCH : Yes (default)")
|
||||
else()
|
||||
message("* Build scripts w/PCH : No")
|
||||
endif()
|
||||
|
||||
if( WARNINGS )
|
||||
message("* Show all warnings : Yes")
|
||||
if( UNIX )
|
||||
@@ -294,15 +308,14 @@ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH 1)
|
||||
#
|
||||
|
||||
if( UNIX )
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
||||
IMMEDIATE @ONLY
|
||||
)
|
||||
|
||||
add_custom_target(uninstall
|
||||
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
||||
)
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
||||
IMMEDIATE @ONLY
|
||||
)
|
||||
add_custom_target(uninstall
|
||||
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
||||
)
|
||||
endif()
|
||||
|
||||
#
|
||||
|
||||
6
PreLoad.cmake
Normal file
6
PreLoad.cmake
Normal file
@@ -0,0 +1,6 @@
|
||||
IF(WIN32)
|
||||
IF(NOT CYGWIN)
|
||||
SET(CMAKE_INSTALL_PREFIX
|
||||
"" CACHE PATH "Default install path")
|
||||
ENDIF(NOT CYGWIN)
|
||||
ENDIF(WIN32)
|
||||
6
externals/CMakeLists.txt
vendored
6
externals/CMakeLists.txt
vendored
@@ -10,6 +10,7 @@
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||
add_subdirectory(jemalloc)
|
||||
set(JEMALLOC_LIB "jemalloc")
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||
@@ -21,7 +22,4 @@ endif()
|
||||
add_subdirectory(g3dlite)
|
||||
add_subdirectory(sockets)
|
||||
add_subdirectory(gsoap)
|
||||
|
||||
# temporary disable libmpq building (through CMake at least) for now
|
||||
# - needs a proper CMakeLists.txt
|
||||
#add_subdirectory(libmpq)
|
||||
add_subdirectory(libmpq)
|
||||
|
||||
2
externals/ace/CMakeLists.txt
vendored
2
externals/ace/CMakeLists.txt
vendored
@@ -335,3 +335,5 @@ add_library(ace SHARED ${ace_STAT_SRCS})
|
||||
if(PCH)
|
||||
add_native_precompiled_header(ace ${CMAKE_SOURCE_DIR}/externals/ace/PrecompiledHeaders/WinAcePCH)
|
||||
endif()
|
||||
|
||||
install(TARGETS ace DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
|
||||
@@ -98,4 +98,7 @@ endif()
|
||||
if( UNIX )
|
||||
install(TARGETS authserver DESTINATION bin)
|
||||
install(FILES authserver.conf.dist DESTINATION etc)
|
||||
elseif( WIN32 )
|
||||
install(TARGETS authserver DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
install(FILES authserver.conf.dist DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
endif()
|
||||
|
||||
@@ -180,7 +180,7 @@ else()
|
||||
collision
|
||||
g3dlib
|
||||
gsoap
|
||||
jemalloc
|
||||
${JEMALLOC_LIB}
|
||||
${SCRIPT_LIB}
|
||||
${READLINE_LIBRARY}
|
||||
${TERMCAP_LIBRARY}
|
||||
@@ -201,5 +201,8 @@ endif()
|
||||
|
||||
if( UNIX )
|
||||
install(TARGETS worldserver DESTINATION bin)
|
||||
install(FILES worldserver.conf.dist DESTINATION etc)
|
||||
install(FILES worldserver.conf.dist DESTINATION etc)
|
||||
elseif( WIN32 )
|
||||
install(TARGETS worldserver DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
install(FILES worldserver.conf.dist DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
endif()
|
||||
|
||||
@@ -13,6 +13,7 @@ file(GLOB_RECURSE sources *.cpp *.h)
|
||||
|
||||
include_directories (
|
||||
${CMAKE_SOURCE_DIR}/src/server/shared
|
||||
${CMAKE_SOURCE_DIR}/externals/libmpq
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/loadlib
|
||||
)
|
||||
@@ -23,16 +24,22 @@ add_executable(mapextractor
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(mapextractor
|
||||
mpq
|
||||
bzip2
|
||||
zlib
|
||||
mpq
|
||||
)
|
||||
else()
|
||||
target_link_libraries(mapextractor
|
||||
mpq
|
||||
${BZIP2_LIBRARIES}
|
||||
${ZLIB_LIBRARIES}
|
||||
mpq
|
||||
)
|
||||
endif()
|
||||
|
||||
add_dependencies(mapextractor mpq)
|
||||
|
||||
if( UNIX )
|
||||
install(TARGETS mapextractor DESTINATION bin)
|
||||
elseif( WIN32 )
|
||||
install(TARGETS mapextractor DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
endif()
|
||||
|
||||
@@ -23,6 +23,8 @@ add_definitions(-DNO_CORE_FUNCS)
|
||||
|
||||
add_executable(vmap3assembler VMapAssembler.cpp)
|
||||
|
||||
add_dependencies(vmap3assembler mpq)
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(vmap3assembler
|
||||
collision
|
||||
@@ -39,4 +41,6 @@ endif()
|
||||
|
||||
if( UNIX )
|
||||
install(TARGETS vmap3assembler DESTINATION bin)
|
||||
elseif( WIN32 )
|
||||
install(TARGETS vmap3assembler DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
endif()
|
||||
|
||||
@@ -20,22 +20,30 @@ add_definitions("-Wall")
|
||||
add_definitions("-ggdb")
|
||||
add_definitions("-O3")
|
||||
|
||||
include_directories(
|
||||
${CMAKE_SOURCE_DIR}/externals/libmpq
|
||||
)
|
||||
|
||||
add_executable(vmap3extractor ${sources})
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(vmap3extractor
|
||||
mpq
|
||||
bzip2
|
||||
zlib
|
||||
mpq
|
||||
)
|
||||
else()
|
||||
target_link_libraries(vmap3extractor
|
||||
mpq
|
||||
${BZIP2_LIBRARIES}
|
||||
${ZLIB_LIBRARIES}
|
||||
mpq
|
||||
)
|
||||
endif()
|
||||
|
||||
add_dependencies(vmap3extractor mpq)
|
||||
|
||||
if( UNIX )
|
||||
install(TARGETS vmap3extractor DESTINATION bin)
|
||||
elseif( WIN32 )
|
||||
install(TARGETS vmap3extractor DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user