2
2
cmake_minimum_required (VERSION 3.15)
3
3
project (StaticAudioLibs LANGUAGES C CXX)
4
4
5
+ # Set output directories consistently across all configurations on Windows
6
+ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /lib)
7
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /lib)
8
+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /bin)
9
+
10
+ # Specify output directories for each configuration in multi-config generators (like Visual Studio)
11
+ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR} /lib)
12
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR} /lib)
13
+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR} /bin)
14
+
15
+ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR} /lib)
16
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR} /lib)
17
+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR} /bin)
18
+
19
+ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_BINARY_DIR} /lib)
20
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_BINARY_DIR} /lib)
21
+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_BINARY_DIR} /bin)
22
+
23
+ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_BINARY_DIR} /lib)
24
+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_BINARY_DIR} /lib)
25
+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_BINARY_DIR} /bin)
26
+
27
+
28
+
5
29
# Define options to control static linking
6
30
set (BUILD_SHARED_LIBS OFF CACHE BOOL "Build static libraries" )
7
31
@@ -22,6 +46,7 @@ set(OPUS_X86_PRESUME_AVX2 OFF CACHE BOOL "Disable Opus presumed AVX2 optimizatio
22
46
23
47
# Disable optional components in FLAC
24
48
set (BUILD_CXXLIBS OFF CACHE BOOL "Disable FLAC++ library" FORCE) # FLAC++ library
49
+ set (BUILD_PROGRAMS OFF CACHE BOOL "Do not build FLAC programs" )
25
50
set (BUILD_EXAMPLES OFF CACHE BOOL "Disable FLAC examples" FORCE) # Examples
26
51
set (BUILD_DOCS OFF CACHE BOOL "Disable FLAC documentation" FORCE) # Documentation
27
52
set (BUILD_TESTING OFF CACHE BOOL "Disable FLAC tests" FORCE) # Tests
@@ -44,6 +69,31 @@ target_include_directories(opus PRIVATE ${CMAKE_SOURCE_DIR}/opus/include)
44
69
45
70
add_subdirectory (flac)
46
71
72
+ # Conditionally exclude unnecessary targets if they exist
73
+ if (TARGET replaygain_analysis)
74
+ set_property (TARGET replaygain_analysis PROPERTY EXCLUDE_FROM_ALL TRUE )
75
+ endif ()
76
+
77
+ if (TARGET replaygain_synthesis)
78
+ set_property (TARGET replaygain_synthesis PROPERTY EXCLUDE_FROM_ALL TRUE )
79
+ endif ()
80
+
81
+ if (TARGET getopt)
82
+ set_property (TARGET getopt PROPERTY EXCLUDE_FROM_ALL TRUE )
83
+ endif ()
84
+
85
+ if (TARGET grabbag)
86
+ set_property (TARGET grabbag PROPERTY EXCLUDE_FROM_ALL TRUE )
87
+ endif ()
88
+
89
+ if (TARGET utf8)
90
+ set_property (TARGET utf8 PROPERTY EXCLUDE_FROM_ALL TRUE )
91
+ endif ()
92
+
93
+ if (TARGET benchmark_residual)
94
+ set_property (TARGET benchmark_residual PROPERTY EXCLUDE_FROM_ALL TRUE )
95
+ endif ()
96
+
47
97
# Add Opusfile
48
98
add_subdirectory (opusfile)
49
99
target_link_libraries (opusfile PRIVATE opus ogg)
0 commit comments