From 4fbce7d5d6f463d7cf0f79512ca94f7517dce750 Mon Sep 17 00:00:00 2001 From: KimLS Date: Wed, 28 Aug 2019 14:56:18 -0700 Subject: [PATCH] Reworked some of the dependency flow --- CMakeLists.txt | 2 +- cmake/DependencyHelperMSVC.cmake | 146 ++++++++++++++++--------------- 2 files changed, 77 insertions(+), 71 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fe47625e1..0f738338f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -133,7 +133,7 @@ ENDIF(EQEMU_ENABLE_BOTS) #database IF(MySQL_FOUND AND MariaDB_FOUND) - SET(DATABASE_LIBRARY_SELECTION MariaDB CACHE STRING "Database library to use: + SET(DATABASE_LIBRARY_SELECTION MySQL CACHE STRING "Database library to use: MySQL MariaDB" ) diff --git a/cmake/DependencyHelperMSVC.cmake b/cmake/DependencyHelperMSVC.cmake index bc10f2b1c..0a5f83809 100644 --- a/cmake/DependencyHelperMSVC.cmake +++ b/cmake/DependencyHelperMSVC.cmake @@ -1,83 +1,89 @@ -OPTION(EQEMU_FETCH_MSVC_DEPENDENCIES "Automatically fetch vcpkg dependencies for MSCV" ON) +OPTION(EQEMU_FETCH_MSVC_DEPENDENCIES_VCPKG "Automatically fetch vcpkg dependencies for MSCV" ON) OPTION(EQEMU_FETCH_MSVC_DEPENDENCIES_PERL "Automatically fetch perl dependencies for MSCV" ON) -MARK_AS_ADVANCED(EQEMU_FETCH_MSVC_DEPENDENCIES) +MARK_AS_ADVANCED(EQEMU_FETCH_MSVC_DEPENDENCIES_VCPKG) MARK_AS_ADVANCED(EQEMU_FETCH_MSVC_DEPENDENCIES_PERL) -SET(EQEMU_MSVC_DEPENDENCIES_VCPKG_X86 "https://github.com/EQEmu/Server/releases/download/v1.2/vcpkg-export-x86.zip" CACHE STRING "The location that windows x86 dependencies will be pulled from.") -SET(EQEMU_MSVC_DEPENDENCIES_VCPKG_X64 "https://github.com/EQEmu/Server/releases/download/v1.2/vcpkg-export-x64.zip" CACHE STRING "The location that windows x64 dependencies will be pulled from.") -SET(EQEMU_MSVC_DEPENDENCIES_PERL_X86 "http://strawberryperl.com/download/5.30.0.1/strawberry-perl-5.30.0.1-32bit-portable.zip" CACHE STRING "The location that windows x86 perl dependencies will be pulled from.") -SET(EQEMU_MSVC_DEPENDENCIES_PERL_X64 "http://strawberryperl.com/download/5.30.0.1/strawberry-perl-5.30.0.1-64bit-portable.zip" CACHE STRING "The location that windows x64 perl dependencies will be pulled from.") +SET(EQEMU_MSVC_DEPENDENCIES_VCPKG_X86 "https://github.com/EQEmu/Server/releases/download/v1.2/vcpkg-export-x86.zip") +SET(EQEMU_MSVC_DEPENDENCIES_VCPKG_X64 "https://github.com/EQEmu/Server/releases/download/v1.2/vcpkg-export-x64.zip") +SET(EQEMU_MSVC_DEPENDENCIES_PERL_X86 "http://strawberryperl.com/download/5.30.0.1/strawberry-perl-5.30.0.1-32bit-portable.zip") +SET(EQEMU_MSVC_DEPENDENCIES_PERL_X64 "http://strawberryperl.com/download/5.30.0.1/strawberry-perl-5.30.0.1-64bit-portable.zip") +SET(EQEMU_MSVC_DEPENDENCIES_VCPKG_X86_ZIP "vcpkg-export-x86.zip") +SET(EQEMU_MSVC_DEPENDENCIES_VCPKG_X64_ZIP "vcpkg-export-x64.zip") +SET(EQEMU_MSVC_DEPENDENCIES_VCPKG_X86_DIR "vcpkg-export-20180828-145854") +SET(EQEMU_MSVC_DEPENDENCIES_VCPKG_X64_DIR "vcpkg-export-20180828-145455") +SET(EQEMU_MSVC_DEPENDENCIES_PERL_X86_ZIP "strawberry-perl-5.30.0.1-32bit-portable.zip") +SET(EQEMU_MSVC_DEPENDENCIES_PERL_X64_ZIP "strawberry-perl-5.30.0.1-64bit-portable.zip") +SET(EQEMU_MSVC_DEPENDENCIES_PERL_X86_DIR "x86") +SET(EQEMU_MSVC_DEPENDENCIES_PERL_X64_DIR "x64") -MARK_AS_ADVANCED(EQEMU_WINDOWS_DEPENDENCIES_X86) -MARK_AS_ADVANCED(EQEMU_WINDOWS_DEPENDENCIES_X64) -MARK_AS_ADVANCED(EQEMU_MSVC_DEPENDENCIES_PERL_X86) -MARK_AS_ADVANCED(EQEMU_MSVC_DEPENDENCIES_PERL_X64) - -IF(EQEMU_FETCH_MSVC_DEPENDENCIES AND NOT DEFINED VCPKG_TARGET_TRIPLET) - MESSAGE(STATUS "Downloading existing vcpkg dependencies from releases...") - - IF(CMAKE_SIZEOF_VOID_P EQUAL 8) - SET(DEP_URL ${EQEMU_MSVC_DEPENDENCIES_VCPKG_X64}) - ELSE() - SET(DEP_URL ${EQEMU_MSVC_DEPENDENCIES_VCPKG_X86}) - ENDIF() - - EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E remove_directory ${PROJECT_SOURCE_DIR}/vcpkg/vcpkg-export-20180828-145455) - EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E remove_directory ${PROJECT_SOURCE_DIR}/vcpkg/vcpkg-export-20180828-145854) - EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E remove_directory ${PROJECT_SOURCE_DIR}/vcpkg) - EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_SOURCE_DIR}/vcpkg) - - FILE(DOWNLOAD ${DEP_URL} ${PROJECT_SOURCE_DIR}/vcpkg/vcpkg.zip - SHOW_PROGRESS - STATUS DOWNLOAD_STATUS) - - LIST(GET DOWNLOAD_STATUS 0 STATUS_CODE) - IF(NOT STATUS_CODE EQUAL 0) - MESSAGE(FATAL_ERROR "Was unable to download dependencies from ${DEP_URL}") - ENDIF() - - MESSAGE(STATUS "Extracting files") - EXECUTE_PROCESS( - COMMAND ${CMAKE_COMMAND} -E tar xzf ${PROJECT_SOURCE_DIR}/vcpkg/vcpkg.zip - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vcpkg - ) - - IF(CMAKE_SIZEOF_VOID_P EQUAL 8) - INCLUDE("${PROJECT_SOURCE_DIR}/vcpkg/vcpkg-export-20180828-145455/scripts/buildsystems/vcpkg.cmake") - ELSE() - INCLUDE("${PROJECT_SOURCE_DIR}/vcpkg/vcpkg-export-20180828-145854/scripts/buildsystems/vcpkg.cmake") - ENDIF() +IF(CMAKE_SIZEOF_VOID_P EQUAL 8) + SET(EQEMU_VCPKG_URL ${EQEMU_MSVC_DEPENDENCIES_VCPKG_X64}) + SET(EQEMU_PERL_URL ${EQEMU_MSVC_DEPENDENCIES_PERL_X64}) + SET(EQEMU_VCPKG_ZIP ${EQEMU_MSVC_DEPENDENCIES_VCPKG_X64_ZIP}) + SET(EQEMU_VCPKG_DIR ${EQEMU_MSVC_DEPENDENCIES_VCPKG_X64_DIR}) + SET(EQEMU_PERL_ZIP ${EQEMU_MSVC_DEPENDENCIES_PERL_X64_ZIP}) + SET(EQEMU_PERL_DIR ${EQEMU_MSVC_DEPENDENCIES_PERL_X64_DIR}) +ELSE() + SET(EQEMU_VCPKG_URL ${EQEMU_MSVC_DEPENDENCIES_VCPKG_X86}) + SET(EQEMU_PERL_URL ${EQEMU_MSVC_DEPENDENCIES_PERL_X86}) + SET(EQEMU_VCPKG_ZIP ${EQEMU_MSVC_DEPENDENCIES_VCPKG_X86_ZIP}) + SET(EQEMU_VCPKG_DIR ${EQEMU_MSVC_DEPENDENCIES_VCPKG_X86_DIR}) + SET(EQEMU_PERL_ZIP ${EQEMU_MSVC_DEPENDENCIES_PERL_X86_ZIP}) + SET(EQEMU_PERL_DIR ${EQEMU_MSVC_DEPENDENCIES_PERL_X86_DIR}) ENDIF() -IF(EQEMU_FETCH_MSVC_DEPENDENCIES_PERL AND NOT DEFINED PERL_LIBRARY) - MESSAGE(STATUS "Downloading existing perl dependencies...") +IF(EQEMU_FETCH_MSVC_DEPENDENCIES_VCPKG) + MESSAGE(STATUS "Resolving vcpkg dependencies...") - IF(CMAKE_SIZEOF_VOID_P EQUAL 8) - SET(DEP_URL ${EQEMU_MSVC_DEPENDENCIES_PERL_X64}) - ELSE() - SET(DEP_URL ${EQEMU_MSVC_DEPENDENCIES_PERL_X86}) - ENDIF() - - EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E remove_directory ${PROJECT_SOURCE_DIR}/perl) - EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_SOURCE_DIR}/perl) - - FILE(DOWNLOAD ${DEP_URL} ${PROJECT_SOURCE_DIR}/perl/perl.zip - SHOW_PROGRESS - STATUS DOWNLOAD_STATUS) + IF(NOT EXISTS ${PROJECT_SOURCE_DIR}/vcpkg/${EQEMU_VCPKG_ZIP}) + EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_SOURCE_DIR}/vcpkg) - LIST(GET DOWNLOAD_STATUS 0 STATUS_CODE) - IF(NOT STATUS_CODE EQUAL 0) - MESSAGE(FATAL_ERROR "Was unable to download dependencies from ${DEP_URL}") + MESSAGE(STATUS "Downloading existing vcpkg dependencies from releases...") + FILE(DOWNLOAD ${EQEMU_VCPKG_URL} ${PROJECT_SOURCE_DIR}/vcpkg/${EQEMU_VCPKG_ZIP} + SHOW_PROGRESS + STATUS DOWNLOAD_STATUS) + + LIST(GET DOWNLOAD_STATUS 0 STATUS_CODE) + IF(NOT STATUS_CODE EQUAL 0) + MESSAGE(FATAL_ERROR "Was unable to download dependencies from ${EQEMU_VCPKG_URL}") + ENDIF() + + MESSAGE(STATUS "Extracting files...") + EXECUTE_PROCESS( + COMMAND ${CMAKE_COMMAND} -E tar xzf ${PROJECT_SOURCE_DIR}/vcpkg/${EQEMU_VCPKG_ZIP} + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/vcpkg + ) ENDIF() - MESSAGE(STATUS "Extracting files") - EXECUTE_PROCESS( - COMMAND ${CMAKE_COMMAND} -E tar xzf ${PROJECT_SOURCE_DIR}/perl/perl.zip - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/perl - ) + INCLUDE(${PROJECT_SOURCE_DIR}/vcpkg/${EQEMU_VCPKG_DIR}/scripts/buildsystems/vcpkg.cmake) +ENDIF() + +IF(EQEMU_FETCH_MSVC_DEPENDENCIES_PERL) + MESSAGE(STATUS "Resolving perl dependencies...") - SET(PERL_EXECUTABLE ${PROJECT_SOURCE_DIR}/perl/perl/bin/perl.exe) - SET(PERL_INCLUDE_PATH ${PROJECT_SOURCE_DIR}/perl/perl/lib/CORE) - SET(PERL_LIBRARY ${PROJECT_SOURCE_DIR}/perl/perl/lib/CORE/libperl530.a) + IF(NOT EXISTS ${PROJECT_SOURCE_DIR}/perl/${EQEMU_PERL_ZIP}) + EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_SOURCE_DIR}/perl) + EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_SOURCE_DIR}/perl/${EQEMU_PERL_DIR}) + + MESSAGE(STATUS "Downloading portable perl...") + FILE(DOWNLOAD ${EQEMU_PERL_URL} ${PROJECT_SOURCE_DIR}/perl/${EQEMU_PERL_ZIP} + SHOW_PROGRESS + STATUS DOWNLOAD_STATUS) + + LIST(GET DOWNLOAD_STATUS 0 STATUS_CODE) + IF(NOT STATUS_CODE EQUAL 0) + MESSAGE(FATAL_ERROR "Was unable to download dependencies from ${EQEMU_PERL_URL}") + ENDIF() + + MESSAGE(STATUS "Extracting files...") + EXECUTE_PROCESS( + COMMAND ${CMAKE_COMMAND} -E tar xzf ${PROJECT_SOURCE_DIR}/perl/${EQEMU_PERL_ZIP} + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/perl/${EQEMU_PERL_DIR} + ) + ENDIF() + + SET(PERL_EXECUTABLE ${PROJECT_SOURCE_DIR}/perl/${EQEMU_PERL_DIR}/perl/bin/perl.exe CACHE FILEPATH "Path to perl program") + SET(PERL_INCLUDE_PATH ${PROJECT_SOURCE_DIR}/perl/${EQEMU_PERL_DIR}/perl/lib/CORE CACHE PATH "Path to perl include files") + SET(PERL_LIBRARY ${PROJECT_SOURCE_DIR}/perl/${EQEMU_PERL_DIR}/perl/lib/CORE/libperl530.a CACHE FILEPATH "Path to perl library") ENDIF() \ No newline at end of file