Sculpt: Multires Heal Brush
[blender.git] / intern / cycles / app / CMakeLists.txt
1 # Copyright 2011-2020 Blender Foundation
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 # http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 #####################################################################
16 # Cycles standalone executable
17 #####################################################################
18
19 set(INC
20   ..
21 )
22 set(INC_SYS
23 )
24
25 set(LIBRARIES
26   cycles_device
27   cycles_kernel
28   cycles_scene
29   cycles_session
30   cycles_bvh
31   cycles_subd
32   cycles_graph
33   cycles_util
34 )
35
36 if(WITH_CYCLES_OSL)
37   list(APPEND LIBRARIES cycles_kernel_osl)
38 endif()
39
40 if(CYCLES_STANDALONE_REPOSITORY)
41   list(APPEND LIBRARIES extern_sky)
42 else()
43   list(APPEND LIBRARIES bf_intern_sky)
44 endif()
45
46 if(WITH_CYCLES_STANDALONE AND WITH_CYCLES_STANDALONE_GUI)
47   list(APPEND LIBRARIES ${GLUT_LIBRARIES})
48 endif()
49
50 list(APPEND LIBRARIES ${CYCLES_GL_LIBRARIES})
51
52 # Common configuration.
53
54 add_definitions(${GL_DEFINITIONS})
55
56 include_directories(${INC})
57 include_directories(SYSTEM ${INC_SYS})
58
59 # Application build targets
60
61 if(WITH_CYCLES_STANDALONE)
62   set(SRC
63     cycles_standalone.cpp
64     cycles_xml.cpp
65     cycles_xml.h
66     oiio_output_driver.cpp
67     oiio_output_driver.h
68   )
69   add_executable(cycles ${SRC} ${INC} ${INC_SYS})
70   unset(SRC)
71
72   target_link_libraries(cycles ${LIBRARIES})
73   cycles_target_link_libraries(cycles)
74
75   if(APPLE)
76     if(WITH_OPENCOLORIO)
77       set_property(TARGET cycles APPEND_STRING PROPERTY LINK_FLAGS " -framework IOKit -framework Carbon")
78     endif()
79     if(WITH_OPENIMAGEDENOISE AND "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
80       # OpenImageDenoise uses BNNS from the Accelerate framework.
81       set_property(TARGET cycles APPEND_STRING PROPERTY LINK_FLAGS " -framework Accelerate")
82     endif()
83   endif()
84
85   if(UNIX AND NOT APPLE)
86     set_target_properties(cycles PROPERTIES INSTALL_RPATH $ORIGIN/lib)
87   endif()
88
89   if(CYCLES_STANDALONE_REPOSITORY)
90     cycles_install_libraries(cycles)
91   endif()
92 endif()
93
94 #####################################################################
95 # Cycles cubin compiler executable
96 #####################################################################
97
98 if(WITH_CYCLES_CUBIN_COMPILER)
99   # 32 bit windows is special, nvrtc is not supported on x86, so even
100   # though we are building 32 bit blender a 64 bit cubin_cc will have
101   # to be build to compile the cubins.
102   if(MSVC AND NOT CMAKE_CL_64)
103     message("Building with CUDA not supported on 32 bit, skipped")
104     set(WITH_CYCLES_CUDA_BINARIES OFF CACHE BOOL "" FORCE)
105   else()
106     set(SRC
107       cycles_cubin_cc.cpp
108     )
109     set(INC
110       ../../../extern/cuew/include
111     )
112     add_executable(cycles_cubin_cc ${SRC})
113     include_directories(${INC})
114     cycles_target_link_libraries(cycles_cubin_cc)
115     unset(SRC)
116     unset(INC)
117   endif()
118 endif()