CMake: Move main platform checks to separate files
[blender.git] / build_files / cmake / platform / platform_win32.cmake
1 # ***** BEGIN GPL LICENSE BLOCK *****
2 #
3 # This program is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU General Public License
5 # as published by the Free Software Foundation; either version 2
6 # of the License, or (at your option) any later version.
7 #
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 # GNU General Public License for more details.
12 #
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the Free Software Foundation,
15 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 #
17 # The Original Code is Copyright (C) 2016, Blender Foundation
18 # All rights reserved.
19 #
20 # Contributor(s): Sergey Sharybin.
21 #
22 # ***** END GPL LICENSE BLOCK *****
23
24 # Libraries configuration for Windows.
25
26 add_definitions(-DWIN32)
27
28 if(MSVC)
29         include(platform_win32_msvc)
30 elseif(CMAKE_COMPILER_IS_GNUCC)
31         include(platform_win32_mingw)
32 endif()
33
34 # Things common to both mingw and MSVC  should go here
35
36 set(WINTAB_INC ${LIBDIR}/wintab/include)
37
38 if(WITH_OPENAL)
39         set(OPENAL ${LIBDIR}/openal)
40         set(OPENALDIR ${LIBDIR}/openal)
41         set(OPENAL_INCLUDE_DIR ${OPENAL}/include)
42         if(MSVC)
43                 set(OPENAL_LIBRARY openal32)
44         else()
45                 set(OPENAL_LIBRARY wrap_oal)
46         endif()
47         set(OPENAL_LIBPATH ${OPENAL}/lib)
48 endif()
49
50 if(WITH_CODEC_SNDFILE)
51         set(SNDFILE ${LIBDIR}/sndfile)
52         set(SNDFILE_INCLUDE_DIRS ${SNDFILE}/include)
53         set(SNDFILE_LIBRARIES libsndfile-1)
54         set(SNDFILE_LIBPATH ${SNDFILE}/lib) # TODO, deprecate
55 endif()
56
57 if(WITH_RAYOPTIMIZATION AND SUPPORT_SSE_BUILD)
58         add_definitions(-D__SSE__ -D__MMX__)
59 endif()
60
61 if(WITH_CYCLES_OSL)
62         set(CYCLES_OSL ${LIBDIR}/osl CACHE PATH "Path to OpenShadingLanguage installation")
63
64         find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib)
65         find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib)
66         find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib)
67         find_library(OSL_LIB_EXEC_DEBUG NAMES oslexec_d PATHS ${CYCLES_OSL}/lib)
68         find_library(OSL_LIB_COMP_DEBUG NAMES oslcomp_d PATHS ${CYCLES_OSL}/lib)
69         find_library(OSL_LIB_QUERY_DEBUG NAMES oslquery_d PATHS ${CYCLES_OSL}/lib)
70         list(APPEND OSL_LIBRARIES
71                 optimized ${OSL_LIB_COMP}
72                 optimized ${OSL_LIB_EXEC}
73                 optimized ${OSL_LIB_QUERY}
74                 debug ${OSL_LIB_EXEC_DEBUG}
75                 debug ${OSL_LIB_COMP_DEBUG}
76                 debug ${OSL_LIB_QUERY_DEBUG}
77         )
78         find_path(OSL_INCLUDE_DIR OSL/oslclosure.h PATHS ${CYCLES_OSL}/include)
79         find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
80
81         if(OSL_INCLUDE_DIR AND OSL_LIBRARIES AND OSL_COMPILER)
82                 set(OSL_FOUND TRUE)
83         else()
84                 message(STATUS "OSL not found")
85                 set(WITH_CYCLES_OSL OFF)
86         endif()
87 endif()