summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt96
1 files changed, 32 insertions, 64 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fe626d873d..f3f71e3754 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -258,7 +258,6 @@ if(WIN32)
# Add support for lib prefix on Windows
set(CMAKE_FIND_LIBRARY_PREFIXES "" "lib")
endif()
-set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
# Get the current working branch
execute_process(
@@ -1119,10 +1118,6 @@ elseif(UNIX)
target_compile_definitions(mixxx-lib PUBLIC __APPLE__)
else()
target_compile_definitions(mixxx-lib PRIVATE __UNIX__)
- # UNIX_SHARE_PATH must be set to the absolute path
- # including the install prefix!
- target_compile_definitions(
- mixxx-lib PUBLIC UNIX_SHARE_PATH="${CMAKE_INSTALL_PREFIX}/${MIXXX_INSTALL_DATADIR}")
if(CMAKE_SYSTEM_NAME STREQUAL Linux)
target_compile_definitions(mixxx-lib PUBLIC __LINUX__)
elseif(CMAKE_SYSTEM_NAME MATCHES "^.*BSD$")
@@ -1538,26 +1533,6 @@ set_target_properties(mixxx-qrc PROPERTIES AUTORCC ON)
target_sources(mixxx PRIVATE $<TARGET_OBJECTS:mixxx-qrc>)
target_sources(mixxx-test PRIVATE $<TARGET_OBJECTS:mixxx-qrc>)
-if(UNIX AND USE_SYMLINKS)
- add_custom_target(mixxx-res
- COMMAND ${CMAKE_COMMAND} -E create_symlink "${CMAKE_CURRENT_SOURCE_DIR}/res" "${CMAKE_CURRENT_BINARY_DIR}/res"
- COMMENT "Symlinking resources to build directory..."
- )
-elseif(WIN32)
- file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/res" CMAKE_CURRENT_SOURCE_RES_DIR_NATIVE)
- file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}/res/" CMAKE_CURRENT_BINARY_RES_DIR_NATIVE)
- add_custom_target(mixxx-res
- COMMAND xcopy ${CMAKE_CURRENT_SOURCE_RES_DIR_NATIVE} ${CMAKE_CURRENT_BINARY_RES_DIR_NATIVE} /s /d /q /y
- COMMENT "Copying missing or modified resources files to build directory..."
- )
-else()
- add_custom_target(mixxx-res
- COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/res" "${CMAKE_CURRENT_BINARY_DIR}/res"
- COMMENT "Copying all resources files to build directory..."
- )
-endif()
-add_dependencies(mixxx-lib mixxx-res)
-
file(READ src/_version.h MIXXX_VERSION_FILECONTENT)
string(REGEX REPLACE "^.*#define MIXXX_VERSION \"(.*)\".*$" "\\1" MIXXX_VERSION "${MIXXX_VERSION_FILECONTENT}")
# a dummy configure to force a reconfigure when the version changes
@@ -1732,13 +1707,12 @@ target_link_libraries(mixxx-lib PUBLIC fidlib)
# KeyFinder
find_package(KeyFinder)
-# If KeyFinder is built statically, we need FFTW
-find_package(FFTW)
-cmake_dependent_option(KEYFINDER "KeyFinder support" ON "KeyFinder_FOUND OR FFTW_FOUND" OFF)
+option(KEYFINDER "KeyFinder support" ON)
if(KEYFINDER)
if (KeyFinder_FOUND)
target_link_libraries(mixxx-lib PUBLIC KeyFinder::KeyFinder)
else()
+ # If KeyFinder is built statically, we need FFTW
find_package(FFTW REQUIRED)
set(KeyFinder_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/lib/keyfinder-install")
set(KeyFinder_LIBRARY "lib/${CMAKE_STATIC_LIBRARY_PREFIX}keyfinder${CMAKE_STATIC_LIBRARY_SUFFIX}")
@@ -1803,8 +1777,8 @@ target_link_libraries(mixxx-lib PUBLIC FpClassify)
target_include_directories(mixxx-lib SYSTEM PUBLIC "${gtest_SOURCE_DIR}/include")
# LAME
-find_package(LAME REQUIRED)
-target_link_libraries(mixxx-lib PUBLIC LAME::LAME)
+find_package(mp3lame REQUIRED)
+target_link_libraries(mixxx-lib PUBLIC mp3lame::mp3lame)
# Kaitai for reading Rekordbox libraries
add_library(Kaitai STATIC EXCLUDE_FROM_ALL
@@ -2094,19 +2068,17 @@ target_include_directories(mixxx-lib SYSTEM PRIVATE lib/reverb)
target_link_libraries(mixxx-lib PUBLIC Reverb)
# Rubberband
-find_package(Rubberband REQUIRED)
-target_link_libraries(mixxx-lib PUBLIC Rubberband::Rubberband)
+find_package(rubberband REQUIRED)
+target_link_libraries(mixxx-lib PUBLIC rubberband::rubberband)
# SndFile
find_package(SndFile REQUIRED)
-target_link_libraries(mixxx-lib PUBLIC SndFile::SndFile)
+target_link_libraries(mixxx-lib PUBLIC SndFile::sndfile)
target_compile_definitions(mixxx-lib PUBLIC __SNDFILE__)
if(SndFile_SUPPORTS_SET_COMPRESSION_LEVEL)
target_compile_definitions(mixxx-lib PUBLIC SFC_SUPPORTS_SET_COMPRESSION_LEVEL)
endif()
-
-#libsndfile is always build statically, so we don't check for STATIC_DEPS
-if(WIN32)
+if(WIN32 AND STATIC_DEPS)
find_package(G72X REQUIRED)
target_link_libraries(mixxx-lib PUBLIC G72X::G72X)
endif()
@@ -2288,27 +2260,27 @@ endif()
# FFmpeg 4.x support
# FFmpeg is multimedia library that can be found http://ffmpeg.org/
-find_package(FFmpeg COMPONENTS AVCODEC AVFORMAT AVUTIL SWRESAMPLE)
+find_package(FFMPEG COMPONENTS libavcodec libavformat libavutil libswresample)
option(FFMPEG "FFmpeg 4.x support" OFF)
if(FFMPEG)
- if(NOT AVCODEC_FOUND)
+ if(NOT FFMPEG_libavcodec_FOUND)
message(FATAL_ERROR "FFmpeg support requires libavcodec and its development headers.")
- elseif(AVCODEC_VERSION VERSION_LESS 58)
+ elseif(FFMPEG_libavcodec_VERSION VERSION_LESS 58)
message(FATAL_ERROR "FFmpeg support requires at least version 58 of libavcodec (found: ${AVCODEC_VERSION}).")
endif()
- if(NOT AVFORMAT_FOUND)
+ if(NOT FFMPEG_libavformat_FOUND)
message(FATAL_ERROR "FFmpeg support requires libavformat and its development headers.")
- elseif(AVFORMAT_VERSION VERSION_LESS 58)
+ elseif(FFMPEG_libavformat_VERSION VERSION_LESS 58)
message(FATAL_ERROR "FFmpeg support requires at least version 58 of libavformat (found: ${AVFORMAT_VERSION}).")
endif()
- if(NOT AVUTIL_FOUND)
+ if(NOT FFMPEG_libavutil_FOUND)
message(FATAL_ERROR "FFmpeg support requires libavutil and its development headers.")
- elseif(AVUTIL_VERSION VERSION_LESS 56)
+ elseif(FFMPEG_libavutil_VERSION VERSION_LESS 56)
message(FATAL_ERROR "FFmpeg support requires at least version 56 of libavutil (found: ${AVUTIL_VERSION}).")
endif()
- if(NOT SWRESAMPLE_FOUND)
+ if(NOT FFMPEG_libswresample_FOUND)
message(FATAL_ERROR "FFmpeg support requires libswresample and its development headers.")
- elseif(SWRESAMPLE_VERSION VERSION_LESS 3.1)
+ elseif(FFMPEG_libswresample_VERSION VERSION_LESS 3.1)
message(FATAL_ERROR "FFmpeg support requires at least version 3.1 of libswresample (found: ${SWRESAMPLE_VERSION}).")
endif()
@@ -2320,12 +2292,9 @@ if(FFMPEG)
__STDC_LIMIT_MACROS
__STDC_FORMAT_MACROS
)
- target_link_libraries(mixxx-lib PUBLIC
- FFmpeg::avcodec
- FFmpeg::avformat
- FFmpeg::avutil
- FFmpeg::swresample
- )
+
+ target_link_libraries(mixxx-lib PUBLIC "${FFMPEG_LIBRARIES}")
+ target_include_directories(mixxx-lib PUBLIC "${FFMPEG_INCLUDE_DIRS}")
endif()
# Google PerfTools
@@ -2359,10 +2328,10 @@ if(HSS1394)
endif()
# Lilv (LV2)
-find_package(Lilv)
-cmake_dependent_option(LILV "Lilv (LV2) support" ON "Lilv_FOUND" OFF)
+find_package(lilv)
+cmake_dependent_option(LILV "Lilv (LV2) support" ON "lilv_FOUND" OFF)
if(LILV)
- if(NOT Lilv_FOUND)
+ if(NOT TARGET lilv::lilv)
message(FATAL_ERROR "Lilv (LV2) support requires the liblilv-0 and its development headers.")
endif()
target_sources(mixxx-lib PRIVATE
@@ -2372,7 +2341,7 @@ if(LILV)
src/preferences/dialog/dlgpreflv2.cpp
)
target_compile_definitions(mixxx-lib PUBLIC __LILV__)
- target_link_libraries(mixxx-lib PUBLIC Lilv::Lilv)
+ target_link_libraries(mixxx-lib PUBLIC lilv::lilv)
endif()
# Live Broadcasting (Shoutcast)
@@ -2447,8 +2416,7 @@ if(OPUS)
target_compile_definitions(mixxx-lib PUBLIC __OPUS__)
target_include_directories(mixxx-lib SYSTEM PUBLIC ${Opus_INCLUDE_DIRS})
target_link_libraries(mixxx-lib PUBLIC ${Opus_LIBRARIES})
- # Opus is always built statically so we don't check STATIC_DEPS
- if(WIN32)
+ if(WIN32 AND STATIC_DEPS)
find_package(Celt)
if(NOT Celt_FOUND)
message(FATAL_ERROR "Opus support with static dependencies requires the celt library.")
@@ -2548,12 +2516,12 @@ if(HID)
target_include_directories(mixxx-hidapi SYSTEM PUBLIC lib/hidapi/hidapi)
if(WIN32)
target_sources(mixxx-hidapi PRIVATE lib/hidapi/windows/hid.c)
+ find_library(Setupapi_LIBRARY Setupapi REQUIRED)
+ target_link_libraries(mixxx-hidapi PUBLIC ${Setupapi_LIBRARY})
elseif(APPLE)
target_sources(mixxx-hidapi PRIVATE lib/hidapi/mac/hid.c)
- find_library(APPKIT_LIBRARY AppKit REQUIRED)
- target_link_libraries(mixxx-lib PUBLIC
- ${APPKIT_LIBRARY}
- )
+ find_library(AppKit_LIBRARY AppKit REQUIRED)
+ target_link_libraries(mixxx-hidapi PUBLIC ${AppKit_LIBRARY})
elseif(UNIX)
if(NOT LibUSB_FOUND)
message(FATAL_ERROR "USB HID controller support on Unix with statically linked libhidapi-libusb requires libusb 1.0 and its development headers.")
@@ -2624,15 +2592,15 @@ if(VINYLCONTROL)
endif()
# WavPack audio file support
-find_package(WavPack)
+find_package(wavpack)
option(WAVPACK "WavPack audio file support" OFF)
if(WAVPACK)
- if(NOT WavPack_FOUND)
+ if(NOT TARGET WavPack::wavpack)
message(FATAL_ERROR "WavPack audio file support requires libwv and its development headers.")
endif()
target_sources(mixxx-lib PRIVATE src/sources/soundsourcewv.cpp)
target_compile_definitions(mixxx-lib PUBLIC __WV__)
- target_link_libraries(mixxx-lib PUBLIC WavPack::WavPack)
+ target_link_libraries(mixxx-lib PUBLIC WavPack::wavpack)
endif()
# Packaging