Skip to content

Commit 512d86b

Browse files
committed
add CMake build system
1 parent a55c164 commit 512d86b

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

Diff for: CMakeLists.txt

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
cmake_minimum_required(VERSION 3.4)
2+
3+
option(BUILD_OPUSURL "Build opusurl library" ON)
4+
5+
project(opusfile C)
6+
7+
if(MSVC)
8+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4267 /wd4244 /wd4090")
9+
endif()
10+
11+
find_path(OGG_INCLUDE_DIR ogg/ogg.h)
12+
find_library(OGG_LIBRARY ogg)
13+
14+
find_path(OPUS_INCLUDE_DIR opus.h PATH_SUFFIXES opus)
15+
find_library(OPUS_LIBRARY opus)
16+
17+
add_library(opusfile
18+
src/info.c
19+
src/internal.c
20+
src/opusfile.c
21+
src/stream.c)
22+
23+
target_include_directories(opusfile PRIVATE include PUBLIC ${OGG_INCLUDE_DIR} ${OPUS_INCLUDE_DIR})
24+
target_link_libraries(opusfile PRIVATE ${OGG_LIBRARY} ${OPUS_LIBRARY})
25+
26+
install(TARGETS opusfile
27+
RUNTIME DESTINATION bin
28+
LIBRARY DESTINATION lib
29+
ARCHIVE DESTINATION lib)
30+
31+
if(BUILD_OPUSURL)
32+
find_package(OpenSSL MODULE REQUIRED)
33+
34+
set(opusurl_src
35+
src/http.c
36+
src/internal.c)
37+
38+
if(MSVC)
39+
list(APPEND opusurl_src
40+
src/wincerts.c)
41+
endif()
42+
43+
add_library(opusurl ${opusurl_src})
44+
45+
target_compile_definitions(opusurl PRIVATE OP_ENABLE_HTTP)
46+
target_include_directories(opusurl PRIVATE include)
47+
target_link_libraries(opusurl PRIVATE opusfile OpenSSL::SSL)
48+
49+
if(MSVC)
50+
target_link_libraries(opusurl PRIVATE ws2_32.lib crypt32.lib)
51+
endif()
52+
53+
install(TARGETS opusurl
54+
RUNTIME DESTINATION bin
55+
LIBRARY DESTINATION lib
56+
ARCHIVE DESTINATION lib)
57+
endif()
58+
59+
install(FILES include/opusfile.h
60+
DESTINATION include/opus)

0 commit comments

Comments
 (0)