Fluid: Updated Mantaflow source files
[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_render
29   cycles_bvh
30   cycles_subd
31   cycles_graph
32   cycles_util
33 )
34
35 if(WITH_CYCLES_OSL)
36   list(APPEND LIBRARIES cycles_kernel_osl)
37 endif()
38
39 if(CYCLES_STANDALONE_REPOSITORY)
40   list(APPEND LIBRARIES extern_sky)
41 else()
42   list(APPEND LIBRARIES bf_intern_sky)
43 endif()
44
45 if(WITH_CYCLES_STANDALONE AND WITH_CYCLES_STANDALONE_GUI)
46   list(APPEND LIBRARIES ${GLUT_LIBRARIES})
47 endif()
48
49 list(APPEND LIBRARIES ${CYCLES_GL_LIBRARIES})
50
51 # Common configuration.
52
53 cycles_link_directories()
54
55 add_definitions(${GL_DEFINITIONS})
56
57 include_directories(${INC})
58 include_directories(SYSTEM ${INC_SYS})
59
60 # Application build targets
61
62 if(WITH_CYCLES_STANDALONE)
63   set(SRC
64     cycles_standalone.cpp
65     cycles_xml.cpp
66     cycles_xml.h
67   )
68   add_executable(cycles ${SRC} ${INC} ${INC_SYS})
69   unset(SRC)
70
71   target_link_libraries(cycles ${LIBRARIES})
72   cycles_target_link_libraries(cycles)
73
74   if(UNIX AND NOT APPLE)
75     set_target_properties(cycles PROPERTIES INSTALL_RPATH $ORIGIN/lib)
76   endif()
77
78   if(CYCLES_STANDALONE_REPOSITORY)
79     cycles_install_libraries(cycles)
80   endif()
81 endif()
82
83 #####################################################################
84 # Cycles network server executable
85 #####################################################################
86
87 if(WITH_CYCLES_NETWORK)
88   set(SRC
89     cycles_server.cpp
90   )
91   add_executable(cycles_server ${SRC})
92   target_link_libraries(cycles_server ${LIBRARIES})
93   cycles_target_link_libraries(cycles_server)
94
95   if(UNIX AND NOT APPLE)
96     set_target_properties(cycles_server PROPERTIES INSTALL_RPATH $ORIGIN/lib)
97   endif()
98   unset(SRC)
99 endif()
100
101 #####################################################################
102 # Cycles cubin compiler executable
103 #####################################################################
104
105 if(WITH_CYCLES_CUBIN_COMPILER)
106   # 32 bit windows is special, nvrtc is not supported on x86, so even
107   # though we are building 32 bit blender a 64 bit cubin_cc will have
108   # to be build to compile the cubins.
109   if(MSVC AND NOT CMAKE_CL_64)
110     message("Building with CUDA not supported on 32 bit, skipped")
111     set(WITH_CYCLES_CUDA_BINARIES OFF CACHE BOOL "" FORCE)
112   else()
113     set(SRC
114       cycles_cubin_cc.cpp
115     )
116     set(INC
117       ../../../extern/cuew/include
118     )
119     add_executable(cycles_cubin_cc ${SRC})
120     include_directories(${INC})
121     cycles_target_link_libraries(cycles_cubin_cc)
122     unset(SRC)
123     unset(INC)
124   endif()
125 endif()