blob: 75d75bcef527f1b4395e81e81ef292e7a7382884 (
plain) (
blame)
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
|
CMAKE_MINIMUM_REQUIRED(VERSION 3.1)
set (CMAKE_CXX_STANDARD 11)
set (CMAKE_C_STANDARD 11)
#add_definitions( "-Wall -O2 -g -Rpass-analysis=loop-vectorize" )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -fsanitize=address -fno-omit-frame-pointer")
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose Release or Debug" FORCE)
endif()
include(CheckCXXCompilerFlag)
function(enable_cxx_compiler_flag_if_supported flag)
string(FIND "${CMAKE_CXX_FLAGS}" "${flag}" flag_already_set)
if(flag_already_set EQUAL -1)
check_cxx_compiler_flag("${flag}" flag_supported)
if(flag_supported)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}" PARENT_SCOPE)
endif()
unset(flag_supported CACHE)
endif()
endfunction()
project("atracdenc" CXX C)
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/modules")
enable_cxx_compiler_flag_if_supported("-Wall")
enable_cxx_compiler_flag_if_supported("-Wextra")
if (ATDE_USE_FLOAT)
add_compile_definitions(ATDE_USE_FLOAT)
endif()
if (WIN32)
add_compile_definitions(PLATFORM_WINDOWS)
add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
include_directories("platform/win/getopt")
set(SOURCE_PCM_IO_LIB
platform/win/pcm_io/mf/pcm_io_mf.cpp
platform/win/pcm_io/win32/pcm_io_win32.cpp
platform/win/pcm_io/pcm_io.cpp
)
else()
INCLUDE(FindLibSndFile)
include_directories(${LIBSNDFILE_INCLUDE_DIR})
set(SOURCE_PCM_IO_LIB
pcm_io_sndfile.cpp
)
endif()
include (TestBigEndian)
TEST_BIG_ENDIAN(BIGENDIAN_ORDER)
if (${BIGENDIAN})
add_compile_definitions(BIGENDIAN_ORDER)
endif()
include_directories(
"."
"lib"
"lib/liboma/include"
"lib/fft/kissfft_impl"
)
set(SOURCE_FFT_LIB
lib/fft/kissfft_impl/kiss_fft.c
lib/fft/kissfft_impl/tools/kiss_fftr.c
)
if (ATDE_USE_FLOAT)
set_source_files_properties(${SOURCE_FFT_LIB} PROPERTIES COMPILE_FLAGS -Dkiss_fft_scalar=float)
else()
set_source_files_properties(${SOURCE_FFT_LIB} PROPERTIES COMPILE_FLAGS -Dkiss_fft_scalar=double)
set(GHA_USE_DOUBLE_API YES)
endif()
add_library(fft_impl STATIC ${SOURCE_FFT_LIB})
set(GHA_FFT_LIB fft_impl)
add_subdirectory(lib/libgha)
set(SOURCE_OMA_LIB lib/liboma/src/liboma.c)
set(SOURCE_BITSTREAM_LIB lib/bitstream/bitstream.cpp)
set(SOURCE_ATRACDENC_IMPL
wav.cpp
aea.cpp
env.cpp
transient_detector.cpp
atrac1denc.cpp
atrac/atrac1.cpp
atrac/atrac1_dequantiser.cpp
atrac/atrac_scale.cpp
atrac/atrac_psy_common.cpp
atrac/atrac1_bitalloc.cpp
oma.cpp
rm.cpp
at3.cpp
atrac3denc.cpp
atrac/atrac3.cpp
atrac/atrac3_bitstream.cpp
atrac/atrac3plus_pqf/atrac3plus_pqf.c
atrac/at3p/at3p.cpp
atrac/at3p/at3p_bitstream.cpp
atrac/at3p/at3p_gha.cpp
atrac/at3p/at3p_tables.cpp
lib/mdct/mdct.cpp
)
add_library(pcm_io STATIC ${SOURCE_PCM_IO_LIB})
if (NOT WIN32)
target_link_libraries(pcm_io ${SNDFILE_LIBRARIES})
endif()
add_library(oma STATIC ${SOURCE_OMA_LIB})
add_library(bitstream STATIC ${SOURCE_BITSTREAM_LIB})
add_library(atracdenc_impl STATIC ${SOURCE_ATRACDENC_IMPL})
target_link_libraries(atracdenc_impl fft_impl pcm_io oma bitstream ${SNDFILE_LIBRARIES} gha)
set(SOURCE_EXE
main.cpp
help.cpp
)
add_executable(atracdenc ${SOURCE_EXE})
target_link_libraries(atracdenc pcm_io oma atracdenc_impl ${SNDFILE_LIBRARIES})
install(TARGETS atracdenc)
#DEVTOOL
set(GHASENDTOOL_EXE
atrac/at3p/ghasend_tool.cpp
)
add_executable(ghasendtool ${GHASENDTOOL_EXE})
target_link_libraries(ghasendtool pcm_io oma atracdenc_impl ${SNDFILE_LIBRARIES})
|