forked from acoustid/acoustid-fingerprinter
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
135 lines (114 loc) · 3.59 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
cmake_minimum_required(VERSION 2.6)
project(fpsubmit)
set(fpsubmit_VERSION 0.6)
set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)")
set(EXEC_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH "Installation prefix for executables and object code libraries" FORCE)
set(BIN_INSTALL_DIR ${EXEC_INSTALL_PREFIX}/bin CACHE PATH "Installation prefix for user executables" FORCE)
set(LIB_INSTALL_DIR ${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE PATH "Installation prefix for object code libraries" FORCE)
set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include CACHE PATH "Installation prefix for C header files" FORCE)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
find_package(Qt5 COMPONENTS Core Gui Network Widgets REQUIRED)
find_package(FFmpeg REQUIRED)
find_package(Taglib REQUIRED)
find_package(Chromaprint REQUIRED)
# HACK HACK HACK
add_definitions( -DQT_DISABLE_DEPRECATED_BEFORE=0x000000 )
if(CMAKE_BUILD_TYPE STREQUAL Release OR CMAKE_BUILD_TYPE STREQUAL MinSizeRel OR CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo)
add_definitions(-DQT_NO_DEBUG_OUTPUT)
endif(CMAKE_BUILD_TYPE STREQUAL Release OR CMAKE_BUILD_TYPE STREQUAL MinSizeRel OR CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo)
set(fpsubmit_HEADERS
checkabledirmodel.h
progressdialog.h
fingerprinter.h
mainwindow.h
loadfilelisttask.h
analyzefiletask.h
)
set(fpsubmit_SOURCES
checkabledirmodel.cpp
progressdialog.cpp
fingerprinter.cpp
fingerprintcalculator.cpp
tagreader.cpp
mainwindow.cpp
decoder.cpp
main.cpp
loadfilelisttask.cpp
analyzefiletask.cpp
updatelogfiletask.cpp
crc.c
gzip.cpp
)
#set(fpsubmit_UIS fpsubmit.ui)
set(fpsubmit_RESOURCES fingerprinter.qrc)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
if(WIN32)
set(fpsubmit_SOURCES ${fpsubmit_SOURCES} fingerprinter.rc)
endif()
add_definitions(
-D__STDC_LIMIT_MACROS
-D__STDC_CONSTANT_MACROS
-DVERSION="${fpsubmit_VERSION}"
)
include_directories(
${CMAKE_CURRENT_BINARY_DIR}
${FFMPEG_LIBAVCODEC_INCLUDE_DIRS}
${FFMPEG_LIBAVFORMAT_INCLUDE_DIRS}
${FFMPEG_LIBAVUTIL_INCLUDE_DIRS}
${TAGLIB_INCLUDES}
${CHROMAPRINT_INCLUDE_DIR}
)
set(CMAKE_REQUIRED_LIBRARIES
${FFMPEG_LIBAVFORMAT_LIBRARIES}
${FFMPEG_LIBAVCODEC_LIBRARIES}
${FFMPEG_LIBAVUTIL_LIBRARIES}
${EXTRA_LIBS})
include(CheckFunctionExists)
check_function_exists(av_audio_convert HAVE_AV_AUDIO_CONVERT)
if(HAVE_AV_AUDIO_CONVERT)
add_definitions(-DHAVE_AV_AUDIO_CONVERT)
endif()
if(WIN32)
set(GUI_TYPE WIN32)
endif(WIN32)
if(APPLE)
set(GUI_TYPE MACOSX_BUNDLE)
set(fpsubmit_ICON_FILE ${CMAKE_CURRENT_SOURCE_DIR}/images/acoustid-fp.icns)
set_source_files_properties(${fpsubmit_ICON_FILE}
PROPERTIES
MACOSX_PACKAGE_LOCATION Resources)
set(fpsubmit_SOURCES ${fpsubmit_SOURCES} ${fpsubmit_ICON_FILE})
endif()
add_executable(fpsubmit ${GUI_TYPE}
${fpsubmit_SOURCES}
${fpsubmit_MOC}
${fpsubmit_UIS_H}
${fpsubmit_RESOURCES_CPP}
)
set_target_properties(fpsubmit PROPERTIES
OUTPUT_NAME acoustid-fingerprinter
MACOSX_BUNDLE_ICON_FILE acoustid-fp.icns
MACOSX_BUNDLE_INFO_STRING "Acoustid Fingerprinter ${fpsubmit_VERSION}"
MACOSX_BUNDLE_BUNDLE_NAME "Acoustid Fingerprinter"
)
target_link_libraries(fpsubmit
Qt5::Core
Qt5::Gui
Qt5::Network
Qt5::Widgets
${FFMPEG_LIBAVFORMAT_LIBRARIES}
${FFMPEG_LIBAVCODEC_LIBRARIES}
${FFMPEG_LIBAVUTIL_LIBRARIES}
${TAGLIB_LIBRARIES}
${CHROMAPRINT_LIBRARIES}
)
if(APPLE)
target_link_libraries(fpsubmit "-framework Accelerate -lz")
endif()
if(UNIX)
install(FILES acoustid-fingerprinter.desktop DESTINATION share/applications)
endif()
install(TARGETS fpsubmit DESTINATION ${BIN_INSTALL_DIR})