summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitaliy Kirsanov <krokoziabla@yandex-team.ru>2019-12-21 12:41:53 +0300
committerErik de Castro Lopo <erikd@mega-nerd.com>2019-12-22 22:09:03 +1100
commit0dfe23504c53fd6fd90895ce6e94981025ad3f3c (patch)
tree55bd3ce36848bd41f758b94ca81443536eebbf21
parenta3d8927c2b745d299bd039858dc1173586c6b0b0 (diff)
downloadflac-0dfe23504c53fd6fd90895ce6e94981025ad3f3c.tar.gz
CMake: Handier way to find Iconv
-rw-r--r--CMakeLists.txt3
-rw-r--r--src/CMakeLists.txt4
-rw-r--r--src/libFLAC++/CMakeLists.txt12
-rw-r--r--src/libFLAC/CMakeLists.txt12
-rw-r--r--src/plugin_common/CMakeLists.txt3
-rw-r--r--src/share/utf8/CMakeLists.txt5
6 files changed, 18 insertions, 21 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ad0a665a..560bb403 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -22,6 +22,9 @@ if(WITH_OGG)
find_package(OGG REQUIRED)
endif()
+find_package(Iconv)
+set(HAVE_ICONV ${Iconv_FOUND})
+
if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return -Wcast-align -Wnested-externs -Wshadow -Wundef -Wmissing-declarations -Winline")
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3 -funroll-loops")
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index b64c578b..1e8a5de4 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,8 +1,8 @@
+cmake_minimum_required(VERSION 3.11)
+
option(ENABLE_64_BIT_WORDS "Set FLAC__BYTES_PER_WORD to 8 (4 is the default)" OFF)
option(WITH_XMMS "Build XMMS plugin" OFF)
-check_include_file("iconv.h" HAVE_ICONV)
-
add_subdirectory("libFLAC")
if(BUILD_CXXLIBS)
add_subdirectory("libFLAC++")
diff --git a/src/libFLAC++/CMakeLists.txt b/src/libFLAC++/CMakeLists.txt
index b94b1a3b..04b721f3 100644
--- a/src/libFLAC++/CMakeLists.txt
+++ b/src/libFLAC++/CMakeLists.txt
@@ -26,9 +26,7 @@ target_compile_definitions(FLAC++
PRIVATE $<$<BOOL:${BUILD_SHARED_LIBS}>:FLACPP_API_EXPORTS>
PUBLIC $<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:FLAC__NO_DLL>)
if(NOT WIN32)
-target_compile_definitions(FLAC++
- PRIVATE $<$<BOOL:${BUILD_SHARED_LIBS}>:FLAC__USE_VISIBILITY_ATTR>
-)
+ target_compile_definitions(FLAC++ PRIVATE $<$<BOOL:${BUILD_SHARED_LIBS}>:FLAC__USE_VISIBILITY_ATTR>)
endif()
target_include_directories(FLAC++ INTERFACE
"$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>"
@@ -38,11 +36,9 @@ if(BUILD_SHARED_LIBS)
set_target_properties(FLAC++ PROPERTIES
VERSION 6.3.0
SOVERSION 6)
-if(NOT WIN32)
- set_target_properties(FLAC++ PROPERTIES
- CXX_VISIBILITY_PRESET hidden
- )
-endif()
+ if(NOT WIN32)
+ set_target_properties(FLAC++ PROPERTIES CXX_VISIBILITY_PRESET hidden)
+ endif()
endif()
install(TARGETS FLAC++ EXPORT targets
diff --git a/src/libFLAC/CMakeLists.txt b/src/libFLAC/CMakeLists.txt
index f22cc398..ad9405e7 100644
--- a/src/libFLAC/CMakeLists.txt
+++ b/src/libFLAC/CMakeLists.txt
@@ -97,9 +97,7 @@ target_compile_definitions(FLAC
PRIVATE $<$<BOOL:${BUILD_SHARED_LIBS}>:FLAC_API_EXPORTS>
PUBLIC $<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:FLAC__NO_DLL>)
if(NOT WIN32)
-target_compile_definitions(FLAC
- PRIVATE $<$<BOOL:${BUILD_SHARED_LIBS}>:FLAC__USE_VISIBILITY_ATTR>
-)
+ target_compile_definitions(FLAC PRIVATE $<$<BOOL:${BUILD_SHARED_LIBS}>:FLAC__USE_VISIBILITY_ATTR>)
endif()
target_include_directories(FLAC INTERFACE
"$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>"
@@ -112,11 +110,9 @@ if(BUILD_SHARED_LIBS)
set_target_properties(FLAC PROPERTIES
VERSION 8.3.0
SOVERSION 8)
-if(NOT WIN32)
- set_target_properties(FLAC PROPERTIES
- C_VISIBILITY_PRESET hidden
- )
-endif()
+ if(NOT WIN32)
+ set_target_properties(FLAC PROPERTIES C_VISIBILITY_PRESET hidden)
+ endif()
endif()
diff --git a/src/plugin_common/CMakeLists.txt b/src/plugin_common/CMakeLists.txt
index b5c72c92..e5e6d849 100644
--- a/src/plugin_common/CMakeLists.txt
+++ b/src/plugin_common/CMakeLists.txt
@@ -1,5 +1,8 @@
+cmake_minimum_required(VERSION 3.12)
+
add_library(plugin_common STATIC
charset.c
dither.c
replaygain.c
tags.c)
+target_link_libraries(plugin_common PUBLIC $<TARGET_NAME_IF_EXISTS:Iconv::Iconv>)
diff --git a/src/share/utf8/CMakeLists.txt b/src/share/utf8/CMakeLists.txt
index 2e2b3c62..389b09e2 100644
--- a/src/share/utf8/CMakeLists.txt
+++ b/src/share/utf8/CMakeLists.txt
@@ -1,9 +1,8 @@
-set(CMAKE_REQUIRED_LIBRARIES iconv)
-check_symbol_exists(iconv "iconv.h" HAVE_ICONV_LIB)
+cmake_minimum_required(VERSION 3.12)
add_library(utf8 STATIC
charset.c
iconvert.c
utf8.c)
-target_link_libraries(utf8 PUBLIC grabbag $<$<BOOL:${HAVE_ICONV_LIB}>:iconv>)
+target_link_libraries(utf8 PUBLIC grabbag $<TARGET_NAME_IF_EXISTS:Iconv::Iconv>)