summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt120
1 files changed, 72 insertions, 48 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d88175b587..22aba2d027 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -843,71 +843,101 @@ target_link_libraries(mixxx PUBLIC mixxx-lib)
#
include(GNUInstallDirs)
install(
- TARGETS mixxx
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ TARGETS
+ mixxx
+ RUNTIME DESTINATION
+ ${CMAKE_INSTALL_BINDIR}
)
# Skins
install(
- DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/skins
- DESTINATION ${CMAKE_INSTALL_DATADIR}/mixxx
+ DIRECTORY
+ ${CMAKE_CURRENT_SOURCE_DIR}/res/skins
+ DESTINATION
+ ${CMAKE_INSTALL_DATADIR}/mixxx
)
# Controller mappings
install(
- DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/controllers
- DESTINATION ${CMAKE_INSTALL_DATADIR}/mixxx
+ DIRECTORY
+ ${CMAKE_CURRENT_SOURCE_DIR}/res/controllers
+ DESTINATION
+ ${CMAKE_INSTALL_DATADIR}/mixxx
)
# Translation files
install(
- DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/translations
- DESTINATION ${CMAKE_INSTALL_DATADIR}/mixxx
- FILES_MATCHING PATTERN "*.qm"
+ DIRECTORY
+ ${CMAKE_CURRENT_SOURCE_DIR}/res/translations
+ DESTINATION
+ ${CMAKE_INSTALL_DATADIR}/mixxx
+ FILES_MATCHING PATTERN
+ "*.qm"
)
# Font files
install(
- DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/fonts
- DESTINATION ${CMAKE_INSTALL_DATADIR}/mixxx
+ DIRECTORY
+ ${CMAKE_CURRENT_SOURCE_DIR}/res/fonts
+ DESTINATION
+ ${CMAKE_INSTALL_DATADIR}/mixxx
)
# Keyboard mapping(s)
install(
- DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/keyboard
- DESTINATION ${CMAKE_INSTALL_DATADIR}/mixxx
+ DIRECTORY
+ ${CMAKE_CURRENT_SOURCE_DIR}/res/keyboard
+ DESTINATION
+ ${CMAKE_INSTALL_DATADIR}/mixxx
)
-# Documentation
+# Licenses
install(
FILES
${CMAKE_CURRENT_SOURCE_DIR}/LICENSE
+ ${CMAKE_CURRENT_SOURCE_DIR}/COPYING
+ DESTINATION
+ ${CMAKE_INSTALL_DATADIR}/licenses/mixxx
+)
+
+# Documentation
+install(
+ FILES
${CMAKE_CURRENT_SOURCE_DIR}/README
${CMAKE_CURRENT_SOURCE_DIR}/Mixxx-Manual.pdf
- DESTINATION ${CMAKE_INSTALL_DOCDIR}/mixxx
+ DESTINATION
+ ${CMAKE_INSTALL_DOCDIR}
)
# .desktop file for KDE/GNOME menu
install(
- FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/linux/mixxx.desktop
- DESTINATION ${CMAKE_INSTALL_DATADIR}/applications/mixxx
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/res/linux/mixxx.desktop
+ DESTINATION
+ ${CMAKE_INSTALL_DATADIR}/applications
)
# Icon file for menu entry
install(
- FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/images/mixxx_icon.svg
- DESTINATION ${CMAKE_INSTALL_DATADIR}/pixmaps/rules.d
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/res/images/mixxx_icon.svg
+ DESTINATION
+ ${CMAKE_INSTALL_DATADIR}/pixmaps
)
# .appdata.xml file for KDE/GNOME AppStream initiative
install(
- FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/linux/mixxx.appdata.xml
- DESTINATION ${CMAKE_INSTALL_DATADIR}/appdata
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/res/linux/mixxx.appdata.xml
+ DESTINATION
+ ${CMAKE_INSTALL_DATADIR}/appdata
)
# udev rule file for USB HID and Bulk controllers
install(
- FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/linux/mixxx.usb.rules
- DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/udev/rules.d
+ FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/res/linux/mixxx.usb.rules
+ DESTINATION
+ ${CMAKE_INSTALL_SYSCONFDIR}/udev/rules.d
)
# Packaging
@@ -932,6 +962,9 @@ include(CPack)
# when building with Visual Studio
set(gtest_force_shared_crt ON CACHE BOOL "Pass Mixxx compiler/linker options to GoogleTest" FORCE)
+# Prevent installation of GoogleTest libraries
+set(INSTALL_GTEST OFF CACHE BOOL "Disable installation of GoogleTest" FORCE)
+
# Add googletest directly to our build. This adds the following targets:
# gtest, gtest_main, gmock and gmock_main
add_subdirectory(
@@ -1035,30 +1068,21 @@ add_executable(mixxx-test
set_target_properties(mixxx-test PROPERTIES AUTOMOC ON)
target_link_libraries(mixxx-test PUBLIC mixxx-lib gtest gmock)
-# Benchmark
-add_library(gbenchmark STATIC EXCLUDE_FROM_ALL
- lib/benchmark/src/benchmark.cc
- lib/benchmark/src/colorprint.cc
- lib/benchmark/src/commandlineflags.cc
- lib/benchmark/src/console_reporter.cc
- lib/benchmark/src/csv_reporter.cc
- lib/benchmark/src/json_reporter.cc
- lib/benchmark/src/log.cc
- lib/benchmark/src/reporter.cc
- lib/benchmark/src/sleep.cc
- lib/benchmark/src/string_util.cc
- lib/benchmark/src/sysinfo.cc
- lib/benchmark/src/walltime.cc
- lib/benchmark/src/re_std.cc
+#
+# Benchmark tests
+#
+
+# Disable testing of google/benchmark
+set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "" FORCE)
+
+# Prevent installation of google/benchmark artifacts
+set(BENCHMARK_ENABLE_INSTALL OFF CACHE BOOL "Disable installation of google/benchmark" FORCE)
+
+add_subdirectory(
+ "${CMAKE_CURRENT_SOURCE_DIR}/lib/benchmark"
+ "${CMAKE_CURRENT_BINARY_DIR}/lib/benchmark"
)
-target_compile_definitions(gbenchmark PRIVATE HAVE_STD_REGEX)
-find_package(Threads REQUIRED)
-target_link_libraries(gbenchmark ${CMAKE_THREAD_LIBS_INIT})
-if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
- target_link_libraries(gbenchmark Shlwapi)
-endif()
-target_include_directories(gbenchmark SYSTEM PUBLIC lib/benchmark/include)
-target_link_libraries(mixxx-test PUBLIC gbenchmark)
+target_link_libraries(mixxx-test PUBLIC benchmark)
# Test Suite
include(CTest)
@@ -1072,13 +1096,13 @@ gtest_add_tests(
set_tests_properties(${testsuite} PROPERTIES TIMEOUT 30)
# Benchmarking
-add_custom_target(benchmark
+add_custom_target(mixxx-benchmark
COMMAND $<TARGET_FILE:mixxx-test> --benchmark
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
COMMENT "Mixxx Benchmarks"
VERBATIM
)
-add_dependencies(benchmark mixxx-test)
+add_dependencies(mixxx-benchmark mixxx-test)
if(UNIX)
add_custom_target(mixxx-testdata