-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathCMakeLists.txt
64 lines (56 loc) · 2.8 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
project(AudioThumbs)
cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
find_package(ECM 1.1.0 REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
include(KDEInstallDirs)
include(KDECMakeSettings)
include(KDECompilerSettings)
find_package(KF5KIO)
set(WITH_TAGLIB ON CACHE BOOL "build with TagLib")
set(WITH_FLAC ON CACHE BOOL "build with FLAC")
### Check for taglib
set(TAGLIB_LIBRARIES)
set(TAGLIB_CFLAGS)
if(WITH_TAGLIB)
find_program(TAGLIBCONFIG_EXECUTABLE NAMES taglib-config PATHS /usr/bin /usr/local/bin ${BIN_INSTALL_DIR})
if(TAGLIBCONFIG_EXECUTABLE)
exec_program(${TAGLIBCONFIG_EXECUTABLE} ARGS --libs RETURN_VALUE _return_VALUE OUTPUT_VARIABLE TAGLIB_LIBRARIES)
exec_program(${TAGLIBCONFIG_EXECUTABLE} ARGS --cflags RETURN_VALUE _return_VALUE OUTPUT_VARIABLE TAGLIB_CFLAGS)
exec_program(${TAGLIBCONFIG_EXECUTABLE} ARGS --version RETURN_VALUE _return_VALUE OUTPUT_VARIABLE TAGLIB_VERSION)
if(TAGLIB_LIBRARIES AND TAGLIB_CFLAGS AND TAGLIB_VERSION)
if(${TAGLIB_VERSION} VERSION_GREATER "1.11" OR ${TAGLIB_VERSION} VERSION_EQUAL "1.11")
set(HAVE_TAGLIB 1)
message(STATUS "TagLib found: ${TAGLIB_LIBRARIES}")
endif()
endif(TAGLIB_LIBRARIES AND TAGLIB_CFLAGS AND TAGLIB_VERSION)
endif(TAGLIBCONFIG_EXECUTABLE)
if(NOT HAVE_TAGLIB)
message(FATAL_ERROR "Could not find Taglib 1.11 or newer")
endif(NOT HAVE_TAGLIB)
endif(WITH_TAGLIB)
### Check for FLAC++
set(FLAC_LIBRARIES)
if(WITH_FLAC)
find_path(FLACPP_INCLUDE_DIR FLAC++/metadata.h)
find_library(FLAC_LIBRARY NAMES FLAC)
find_library(FLACPP_LIBRARY NAMES FLAC++)
if(FLACPP_INCLUDE_DIR AND FLAC_LIBRARY AND FLACPP_LIBRARY)
set(FLAC_LIBRARIES ${FLACPP_LIBRARY} ${FLAC_LIBRARY})
message(STATUS "FLAC++ found: ${FLAC_LIBRARIES}")
set(HAVE_FLAC 1)
set(_CMAKE_REQUIRED_LIBRARIES_TMP ${CMAKE_REQUIRED_LIBRARIES})
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${FLAC_LIBRARIES} ${FLACPP_LIBRARIES})
CHECK_CXX_SOURCE_COMPILES("#include <FLAC++/metadata.h>\nint main() {\n FLAC::Metadata::VorbisComment vc;\n const ::FLAC__StreamMetadata* fsmd = vc;\n return 0;\n}\n" FLAC_STREAMMETADATA_OPERATOR_FOUND)
CHECK_CXX_SOURCE_COMPILES("#include <FLAC++/metadata.h>\nint main() {\n FLAC::Metadata::Picture pic;\n return 0;\n}\n" FLAC_METADATA_PICTURE_FOUND)
set(CMAKE_REQUIRED_LIBRARIES ${_CMAKE_REQUIRED_LIBRARIES_TMP})
if(NOT FLAC_STREAMMETADATA_OPERATOR_FOUND)
set(HAVE_NO_FLAC_STREAMMETADATA_OPERATOR 1)
endif(NOT FLAC_STREAMMETADATA_OPERATOR_FOUND)
if(FLAC_METADATA_PICTURE_FOUND)
set(HAVE_FLAC_PICTURE 1)
endif(FLAC_METADATA_PICTURE_FOUND)
else(FLACPP_INCLUDE_DIR AND FLAC_LIBRARY AND FLACPP_LIBRARY)
message(FATAL_ERROR "Could not find FLAC++")
endif(FLACPP_INCLUDE_DIR AND FLAC_LIBRARY AND FLACPP_LIBRARY)
endif(WITH_FLAC)
add_subdirectory(src)