summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormrsmidge <smidge@xsco.net>2020-10-06 14:54:06 +0100
committerAdam Szmigin <smidge@xsco.net>2020-10-06 22:15:12 +0100
commite84d713bc79efdaecd6054645d6949f314c22771 (patch)
tree97d9d7c8438e536a22c8d038c9c4830cd286e916
parent92573b8263c2468df6eefa5cdb8126a33150fa64 (diff)
Enable djinterop on CI builds
-rw-r--r--CMakeLists.txt32
-rw-r--r--appveyor.yml1
2 files changed, 27 insertions, 6 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0cc5b3a7ba..ccfbb72072 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=<INSTALL_DIR>
+ CMAKE_ARGS
+ -DBUILD_SHARED_LIBS=OFF
+ -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=ON
+ -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+ -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
+ -DCMAKE_PREFIX_PATH:PATH=${CMAKE_PREFIX_PATH}
+ -DSYSTEM_SQLITE=${DJINTEROP_SYSTEM_SQLITE}
+ BUILD_BYPRODUCTS <INSTALL_DIR>/${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 ac1d3f4e87..92605a6b37 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