-
Notifications
You must be signed in to change notification settings - Fork 142
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
70 lines (57 loc) · 2.45 KB
/
Copy pathCMakeLists.txt
File metadata and controls
70 lines (57 loc) · 2.45 KB
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
cmake_minimum_required(VERSION 3.10)
file(READ "${CMAKE_CURRENT_LIST_DIR}/NAM/version.h" _nam_version_header)
foreach(_component MAJOR MINOR PATCH)
string(REGEX MATCH
"#define[ \t]+NEURAL_AMP_MODELER_DSP_VERSION_${_component}[ \t]+([0-9]+)"
_nam_version_match "${_nam_version_header}"
)
if(NOT _nam_version_match)
message(FATAL_ERROR "Could not parse NEURAL_AMP_MODELER_DSP_VERSION_${_component} from NAM/version.h")
endif()
set(_nam_version_${_component} "${CMAKE_MATCH_1}")
endforeach()
set(_nam_project_version "${_nam_version_MAJOR}.${_nam_version_MINOR}.${_nam_version_PATCH}")
project(NAM VERSION "${_nam_project_version}")
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
set(CMAKE_BUILD_TYPE Debug CACHE STRING "Build type (Release, Debug, RelWithDebInfo, MinSizeRel)" FORCE)
message(STATUS "No build type specified; defaulting to Debug")
endif()
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED OFF)
set(CMAKE_CXX_EXTENSIONS OFF)
# Use libc++ on macOS, system default on Linux
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
endif()
option(NAM_USE_LIBCXX_LINUX "Use libc++ on Linux (Clang + libc++-dev packages; tests SlimmableWavenet _LIBCPP_VERSION path)" OFF)
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin")
include_directories(SYSTEM /usr/local/include)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
if (NAM_USE_LIBCXX_LINUX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
# Clang links libc++/libc++abi; do not pull in libstdc++fs (libstdc++).
else()
link_libraries(stdc++fs)
endif()
elseif (CMAKE_SYSTEM_NAME STREQUAL "Windows")
add_compile_definitions(NOMINMAX WIN32_LEAN_AND_MEAN)
else()
message(FATAL_ERROR "Unrecognized Platform!")
endif()
set(NAM_DEPS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/Dependencies")
include_directories(SYSTEM "${NAM_DEPS_PATH}/eigen")
# Build the specialized A2 fast-path WaveNet (A2 standard + A2 nano). When ON,
# models whose config matches the A2 shape signature are routed to a hand-optimized
# WaveNet implementation instead of the generic one. When OFF, all models go
# through the generic path.
option(NAM_ENABLE_A2_FAST "Build the A2 fast-path WaveNet" ON)
if(NAM_ENABLE_A2_FAST)
add_compile_definitions(NAM_ENABLE_A2_FAST)
endif()
add_subdirectory(tools)
#file(MAKE_DIRECTORY build/tools)
#add_custom_target(copy_tools ALL
# ${CMAKE_COMMAND} -E copy "$<TARGET_FILE:tools>" tools/
# DEPENDS tools
#)