From e84d713bc79efdaecd6054645d6949f314c22771 Mon Sep 17 00:00:00 2001 From: mrsmidge Date: Tue, 6 Oct 2020 14:54:06 +0100 Subject: [PATCH] Enable djinterop on CI builds --- CMakeLists.txt | 32 ++++++++++++++++++++++++++------ appveyor.yml | 1 + 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0cc5b3a7ba4..ccfbb720727 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,6 +49,10 @@ endif() ####################################################################### set(CMAKE_CXX_STANDARD 17) +if(MSVC) + # Ensure MSVC populates __cplusplus correctly. + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zc:__cplusplus") +endif() # Speed up builds on HDDs if(GNU_GCC OR LLVM_CLANG) @@ -1489,15 +1493,32 @@ if(ENGINEPRIME) target_link_libraries(mixxx-lib PUBLIC DjInterop::DjInterop) else() # Fetch djinterop sources from GitHub and build them statically. - message(STATUS "Linking statically to libdjinterop fetched from GitHub") + + # On MacOS, Mixxx does not use system SQLite, so we will use libdjinterop's + # embedded SQLite in such a case. + if (APPLE) + message(STATUS "Building libdjinterop sources (with embedded SQLite) fetched from GitHub") + set(DJINTEROP_SYSTEM_SQLITE OFF) + else() + message(STATUS "Building libdjinterop sources (with system SQLite) fetched from GitHub") + set(DJINTEROP_SYSTEM_SQLITE ON) + endif() set(DJINTEROP_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/lib/libdjinterop-install") + set(DJINTEROP_LIBRARY "lib/${CMAKE_STATIC_LIBRARY_PREFIX}djinterop${CMAKE_STATIC_LIBRARY_SUFFIX}") ExternalProject_Add(libdjinterop GIT_REPOSITORY https://github.com/xsco/libdjinterop.git - GIT_TAG tags/0.13.0 + GIT_TAG tags/0.14.3 GIT_SHALLOW TRUE INSTALL_DIR ${DJINTEROP_INSTALL_DIR} - CMAKE_ARGS "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" -DCMAKE_INSTALL_PREFIX:PATH= + CMAKE_ARGS + -DBUILD_SHARED_LIBS=OFF + -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_INSTALL_PREFIX:PATH= + -DCMAKE_PREFIX_PATH:PATH=${CMAKE_PREFIX_PATH} + -DSYSTEM_SQLITE=${DJINTEROP_SYSTEM_SQLITE} + BUILD_BYPRODUCTS /${DJINTEROP_LIBRARY} EXCLUDE_FROM_ALL TRUE ) @@ -1505,9 +1526,8 @@ if(ENGINEPRIME) add_library(mixxx-libdjinterop STATIC IMPORTED) add_dependencies(mixxx-libdjinterop libdjinterop) set(DJINTEROP_INCLUDE_DIR "${DJINTEROP_INSTALL_DIR}/include") - set(DJINTEROP_LIBRARY "${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}djinterop${CMAKE_STATIC_LIBRARY_SUFFIX}") - set(DJINTEROP_LIBRARY_DIR "${DJINTEROP_INSTALL_DIR}/${DJINTEROP_LIBRARY}") - set_target_properties(mixxx-libdjinterop PROPERTIES IMPORTED_LOCATION "${DJINTEROP_LIBRARY_DIR}") + set(DJINTEROP_LIBRARY_PATH "${DJINTEROP_INSTALL_DIR}/${DJINTEROP_LIBRARY}") + set_target_properties(mixxx-libdjinterop PROPERTIES IMPORTED_LOCATION "${DJINTEROP_LIBRARY_PATH}") target_include_directories(mixxx-lib PUBLIC ${DJINTEROP_INCLUDE_DIR}) target_link_libraries(mixxx-lib PUBLIC mixxx-libdjinterop) diff --git a/appveyor.yml b/appveyor.yml index ac1d3f4e879..92605a6b37e 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -238,6 +238,7 @@ for: -DBATTERY=ON -DBROADCAST=ON -DBULK=ON + -DENGINEPRIME=ON -DHID=ON -DHSS1394=ON -DKEYFINDER=OFF