1# CUSTOM PROPERTIES TO SET
2# GLOBAL
3
4# Csound build options for MSVC
5set(BUILD_BUCHLA_OPCODES ON)
6set(BUILD_CHUA_OPCODES ON)
7set(BUILD_CSBEATS ON)
8set(BUILD_CSOUND_AC ON)
9set(BUILD_CSOUND_AC_LUA_INTERFACE OFF)
10set(BUILD_CSOUND_AC_PYTHON_INTERFACE ON)
11set(BUILD_CUDA_OPCODES OFF)
12set(BUILD_CXX_INTERFACE ON)
13set(BUILD_DSSI_OPCODES OFF)
14set(BUILD_EMUGENS_OPCODES ON)
15set(BUILD_EXCITER_OPCODES ON)
16set(BUILD_FAUST_OPCODES OFF)
17set(BUILD_FLUID_OPCODES ON)
18set(BUILD_FRAMEBUFFER_OPCODES ON)
19set(BUILD_HDF5_OPCODES ON)
20set(BUILD_IMAGE_OPCODES ON)
21set(BUILD_INSTALLER ON)
22set(BUILD_JACK_OPCODES OFF)
23set(BUILD_JAVA_INTERFACE ON)
24set(BUILD_LINEAR_ALGEBRA_OPCODES ON)
25set(BUILD_LUA_INTERFACE OFF)
26set(BUILD_LUA_OPCODES OFF)
27set(BUILD_MULTI_CORE ON)
28set(BUILD_OPENCL_OPCODES OFF)
29set(BUILD_OSC_OPCODES ON)
30set(BUILD_P5GLOVE_OPCODES OFF)
31set(BUILD_PADSYNTH_OPCODES ON)
32set(BUILD_PD_CLASS ON)
33set(BUILD_PLATEREV_OPCODES ON)
34set(BUILD_PYTHON_INTERFACE ON)
35set(BUILD_PYTHON_OPCODES ON)
36set(BUILD_RELEASE ON)
37set(BUILD_SCANSYN_OPCODES ON)
38set(BUILD_SELECT_OPCODE ON)
39set(BUILD_SERIAL_OPCODES ON)
40set(BUILD_STACK_OPCODES ON)
41set(BUILD_STATIC_LIBRARY ON)
42set(BUILD_STK_OPCODES ON)
43set(BUILD_TESTS ON)
44set(BUILD_UTILITIES ON)
45set(BUILD_VIRTUAL_KEYBOARD ON)
46set(BUILD_WEBSOCKET_OPCODE ON)
47set(BUILD_WIIMOTE_OPCODES OFF)
48set(BUILD_WINSOUND ON)
49
50# Csound use features
51set(USE_ALSA 0) # N/A
52set(USE_ATOMIC_BUILTIN 0) # Needs code changes for MSVC
53set(USE_AUDIOUNIT 0) # N/A
54set(USE_CURL 0)
55set(USE_COMPILER_OPTIMIZATIONS 1)
56set(USE_COREMIDI 0) # N/A
57set(USE_DOUBLE 1)
58set(USE_FLTK 1)
59set(USE_GETTEXT	0)
60set(USE_IPMIDI 1)
61set(USE_JACK 0) # N/A
62set(USE_LIB64 1)
63set(USE_LRINT 1)
64set(USE_PORTAUDIO 1)
65set(USE_PORTMIDI 1)
66set(USE_PULSEAUDIO 0) # N/A
67set(USE_SYSTEM_PORTSMF 1)
68
69# Misc build options
70set(HAVE_BIG_ENDIAN 0)
71set(CMAKE_VERBOSE_MAKEFILE ON)
72set(CMAKE_16BIT_TYPE "unsigned short")
73set(FAIL_MISSING OFF) # Enable when packaging
74
75
76# TEMPORARILY USE THE FOLLOWING SELF-BUILT PORTMIDI UNTIL VCPKG PROVIDES ONE
77# THAT IS UP TO DATE
78list(APPEND CMAKE_PREFIX_PATH "${PROJECT_SOURCE_DIR}\\msvc\\deps")
79set(CMAKE_REQUIRED_INCLUDES ${PROJECT_SOURCE_DIR}\\msvc\\deps\\include)
80
81# END CUSTOM PORTMIDI #
82
83# Disable the following warnings in msvc
84# - C4244 loss of data in conversion
85# - C4267 loss of data in conversion
86# - C4005 macro refinitions
87# - C4996 unsafe functions
88# - C4047 levels of indirection difference (int and void*)
89# - C4090 different const qualifiers
90# - C4477 format string type differences
91set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4244 /wd4267 /wd4005 /wd4996 /wd4047 /wd4090 /wd4477")
92set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4244 /wd4267 /wd4005 /wd4996 /wd4047 /wd4090 /wd4477 /wd4251")
93
94