233 lines
7.5 KiB
CMake
233 lines
7.5 KiB
CMake
# Locate FBX
|
|
# This module defines:
|
|
# FBX_INCLUDE_DIR, where to find the headers
|
|
#
|
|
# FBX_LIBRARY, FBX_LIBRARY_DEBUG
|
|
# FBX_FOUND
|
|
#
|
|
# $FBX_DIR is an environment variable that would
|
|
# correspond to the ./configure --prefix=$FBX_DIR
|
|
|
|
IF(APPLE)
|
|
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
|
# using regular Clang or AppleClang
|
|
SET(FBX_LIBDIR "clang")
|
|
else()
|
|
SET(FBX_LIBDIR "gcc4/ub")
|
|
endif()
|
|
ELSEIF(CMAKE_COMPILER_IS_GNUCXX)
|
|
SET(FBX_LIBDIR "gcc4")
|
|
ELSEIF(MSVC80)
|
|
SET(FBX_LIBDIR "vs2005")
|
|
ELSEIF(MSVC90)
|
|
SET(FBX_LIBDIR "vs2008")
|
|
ELSEIF(MSVC10)
|
|
SET(FBX_LIBDIR "vs2010")
|
|
ELSEIF(MSVC11)
|
|
SET(FBX_LIBDIR "vs2012")
|
|
ELSEIF(MSVC_VERSION EQUAL 1800)
|
|
SET(FBX_LIBDIR "vs2013")
|
|
ELSEIF(MSVC_VERSION EQUAL 1900)
|
|
SET(FBX_LIBDIR "vs2015")
|
|
ELSEIF(MSVC_VERSION GREATER_EQUAL 1910 AND MSVC_VERSION LESS 1920)
|
|
SET(FBX_LIBDIR "vs2017")
|
|
ELSEIF(MSVC_VERSION GREATER_EQUAL 1920 AND MSVC_VERSION LESS 1930)
|
|
# SET(FBX_LIBDIR "vs2019") # FBX doesn't have this yet as of version 2020.0.1
|
|
SET(FBX_LIBDIR "vs2017") # Binary compatible with vs2019
|
|
ENDIF()
|
|
|
|
IF(APPLE)
|
|
# do nothing
|
|
ELSEIF(CMAKE_CL_64)
|
|
SET(FBX_LIBDIR ${FBX_LIBDIR}/x64)
|
|
ELSEIF(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
SET(FBX_LIBDIR ${FBX_LIBDIR}/x64)
|
|
ELSE()
|
|
SET(FBX_LIBDIR ${FBX_LIBDIR}/x86)
|
|
ENDIF()
|
|
|
|
#try to use 2015.1 or 2014.2 version
|
|
|
|
IF(APPLE)
|
|
SET(FBX_LIBNAME "fbxsdk")
|
|
ELSEIF(CMAKE_COMPILER_IS_GNUCXX)
|
|
SET(FBX_LIBNAME "fbxsdk")
|
|
ELSE()
|
|
OPTION(FBX_SHARED OFF)
|
|
IF(FBX_SHARED)
|
|
SET(FBX_LIBNAME "libfbxsdk")
|
|
ELSE()
|
|
SET(FBX_LIBNAME "libfbxsdk-md")
|
|
IF(WIN32)
|
|
SET(FBX_XML2_LIBNAME "libxml2-md")
|
|
SET(FBX_ZLIB_LIBNAME "zlib-md")
|
|
ENDIF()
|
|
ENDIF()
|
|
ENDIF()
|
|
|
|
SET(FBX_LIBNAME_DEBUG ${FBX_LIBNAME}d)
|
|
|
|
SET( FBX_SEARCH_PATHS
|
|
$ENV{FBX_DIR}
|
|
"$ENV{ProgramW6432}/Autodesk/FBX/FBX SDK/2020.0.1"
|
|
"$ENV{PROGRAMFILES}/Autodesk/FBX/FBX SDK/2020.0.1"
|
|
"/Applications/Autodesk/FBX SDK/2020.0.1"
|
|
"$ENV{ProgramW6432}/Autodesk/FBX/FBX SDK/2020.0"
|
|
"$ENV{PROGRAMFILES}/Autodesk/FBX/FBX SDK/2020.0"
|
|
"/Applications/Autodesk/FBX SDK/2020.0"
|
|
"$ENV{ProgramW6432}/Autodesk/FBX/FBX SDK/2019.5"
|
|
"$ENV{PROGRAMFILES}/Autodesk/FBX/FBX SDK/2019.5"
|
|
"/Applications/Autodesk/FBX SDK/2019.5"
|
|
"$ENV{ProgramW6432}/Autodesk/FBX/FBX SDK/2019.2"
|
|
"$ENV{PROGRAMFILES}/Autodesk/FBX/FBX SDK/2019.2"
|
|
"/Applications/Autodesk/FBX SDK/2019.2"
|
|
"$ENV{ProgramW6432}/Autodesk/FBX/FBX SDK/2019.0"
|
|
"$ENV{PROGRAMFILES}/Autodesk/FBX/FBX SDK/2019.0"
|
|
"/Applications/Autodesk/FBX SDK/2019.0"
|
|
"$ENV{ProgramW6432}/Autodesk/FBX/FBX SDK/2018.1.1"
|
|
"$ENV{PROGRAMFILES}/Autodesk/FBX/FBX SDK/2018.1.1"
|
|
"/Applications/Autodesk/FBX SDK/2018.1.1"
|
|
"$ENV{ProgramW6432}/Autodesk/FBX/FBX SDK/2018.0"
|
|
"$ENV{PROGRAMFILES}/Autodesk/FBX/FBX SDK/2018.0"
|
|
"/Applications/Autodesk/FBX SDK/2018.0"
|
|
"$ENV{ProgramW6432}/Autodesk/FBX/FBX SDK/2017.1"
|
|
"$ENV{PROGRAMFILES}/Autodesk/FBX/FBX SDK/2017.1"
|
|
"/Applications/Autodesk/FBX SDK/2017.1"
|
|
"$ENV{ProgramW6432}/Autodesk/FBX/FBX SDK/2017.0"
|
|
"$ENV{PROGRAMFILES}/Autodesk/FBX/FBX SDK/2017.0"
|
|
"/Applications/Autodesk/FBX SDK/2017.0"
|
|
"$ENV{ProgramW6432}/Autodesk/FBX/FBX SDK/2016.1.2"
|
|
"$ENV{PROGRAMFILES}/Autodesk/FBX/FBX SDK/2016.1.2"
|
|
"/Applications/Autodesk/FBX/FBX SDK/2016.1.2"
|
|
/Applications/Autodesk/FBXSDK201612
|
|
"$ENV{ProgramW6432}/Autodesk/FBX/FBX SDK/2016.1.1"
|
|
"$ENV{PROGRAMFILES}/Autodesk/FBX/FBX SDK/2016.1.1"
|
|
"/Applications/Autodesk/FBX/FBX SDK/2016.1.1"
|
|
/Applications/Autodesk/FBXSDK201611
|
|
"$ENV{ProgramW6432}/Autodesk/FBX/FBX SDK/2015.1"
|
|
"$ENV{PROGRAMFILES}/Autodesk/FBX/FBX SDK/2015.1"
|
|
"/Applications/Autodesk/FBX/FBX SDK/2015.1"
|
|
/Applications/Autodesk/FBXSDK20151
|
|
"$ENV{ProgramW6432}/Autodesk/FBX/FBX SDK/2014.2"
|
|
"$ENV{PROGRAMFILES}/Autodesk/FBX/FBX SDK/2014.2"
|
|
"/Applications/Autodesk/FBX/FBX SDK/2014.2"
|
|
/Applications/Autodesk/FBXSDK20142
|
|
)
|
|
|
|
# search for headers & debug/release libraries
|
|
FIND_PATH(FBX_INCLUDE_DIR "fbxsdk.h"
|
|
PATHS ${FBX_SEARCH_PATHS}
|
|
PATH_SUFFIXES "include")
|
|
FIND_LIBRARY( FBX_LIBRARY ${FBX_LIBNAME}
|
|
PATHS ${FBX_SEARCH_PATHS}
|
|
PATH_SUFFIXES "lib/${FBX_LIBDIR}/release" "lib/${FBX_LIBDIR}")
|
|
|
|
#Once one of the calls succeeds the result variable will be set and stored in the cache so that no call will search again.
|
|
|
|
#no debug d suffix, search in debug folder only
|
|
FIND_LIBRARY( FBX_LIBRARY_DEBUG ${FBX_LIBNAME}
|
|
PATHS ${FBX_SEARCH_PATHS}
|
|
PATH_SUFFIXES "lib/${FBX_LIBDIR}/debug")
|
|
FIND_LIBRARY( FBX_LIBRARY_DEBUG ${FBX_LIBNAME_DEBUG}
|
|
PATHS ${FBX_SEARCH_PATHS}
|
|
PATH_SUFFIXES "lib/${FBX_LIBDIR}")
|
|
|
|
IF(WIN32)
|
|
FIND_LIBRARY( FBX_XML2_LIBRARY ${FBX_XML2_LIBNAME}
|
|
PATHS ${FBX_SEARCH_PATHS}
|
|
PATH_SUFFIXES "lib/${FBX_LIBDIR}/release" "lib/${FBX_LIBDIR}")
|
|
FIND_LIBRARY( FBX_ZLIB_LIBRARY ${FBX_ZLIB_LIBNAME}
|
|
PATHS ${FBX_SEARCH_PATHS}
|
|
PATH_SUFFIXES "lib/${FBX_LIBDIR}/release" "lib/${FBX_LIBDIR}")
|
|
FIND_LIBRARY( FBX_XML2_LIBRARY_DEBUG ${FBX_XML2_LIBNAME}
|
|
PATHS ${FBX_SEARCH_PATHS}
|
|
PATH_SUFFIXES "lib/${FBX_LIBDIR}/debug")
|
|
FIND_LIBRARY( FBX_ZLIB_LIBRARY_DEBUG ${FBX_ZLIB_LIBNAME}
|
|
PATHS ${FBX_SEARCH_PATHS}
|
|
PATH_SUFFIXES "lib/${FBX_LIBDIR}/debug")
|
|
ENDIF()
|
|
|
|
IF(FBX_LIBRARY AND FBX_LIBRARY_DEBUG AND FBX_INCLUDE_DIR)
|
|
SET(FBX_FOUND "YES")
|
|
ELSE()
|
|
SET(FBX_FOUND "NO")
|
|
ENDIF()
|
|
|
|
IF(NOT FBX_FOUND)
|
|
#try to use 2014.1 version
|
|
IF(APPLE)
|
|
SET(FBX_LIBNAME "fbxsdk-2014.1")
|
|
ELSEIF(CMAKE_COMPILER_IS_GNUCXX)
|
|
SET(FBX_LIBNAME "fbxsdk-2014.1")
|
|
ELSE()
|
|
SET(FBX_LIBNAME "fbxsdk-2014.1")
|
|
ENDIF()
|
|
|
|
SET(FBX_LIBNAME_DEBUG ${FBX_LIBNAME}d)
|
|
|
|
SET( FBX_SEARCH_PATHS
|
|
$ENV{FBX_DIR}
|
|
"$ENV{ProgramW6432}/Autodesk/FBX/FBX SDK/2014.1"
|
|
"$ENV{PROGRAMFILES}/Autodesk/FBX/FBX SDK/2014.1"
|
|
"/Applications/Autodesk/FBX/FBX SDK/2014.1"
|
|
/Applications/Autodesk/FBXSDK20141
|
|
)
|
|
|
|
# search for headers & debug/release libraries
|
|
FIND_PATH(FBX_INCLUDE_DIR "fbxsdk.h"
|
|
PATHS ${FBX_SEARCH_PATHS}
|
|
PATH_SUFFIXES "include")
|
|
FIND_LIBRARY( FBX_LIBRARY ${FBX_LIBNAME}
|
|
PATHS ${FBX_SEARCH_PATHS}
|
|
PATH_SUFFIXES "lib/${FBX_LIBDIR}")
|
|
|
|
FIND_LIBRARY( FBX_LIBRARY_DEBUG ${FBX_LIBNAME_DEBUG}
|
|
PATHS ${FBX_SEARCH_PATHS}
|
|
PATH_SUFFIXES "lib/${FBX_LIBDIR}")
|
|
IF(FBX_LIBRARY AND FBX_LIBRARY_DEBUG AND FBX_INCLUDE_DIR)
|
|
SET(FBX_FOUND "YES")
|
|
ELSE()
|
|
SET(FBX_FOUND "NO")
|
|
ENDIF()
|
|
|
|
ENDIF()
|
|
|
|
IF(NOT FBX_FOUND)
|
|
#try to use 2013.3 version
|
|
IF(APPLE)
|
|
SET(FBX_LIBNAME "fbxsdk-2013.3-static")
|
|
ELSEIF(CMAKE_COMPILER_IS_GNUCXX)
|
|
SET(FBX_LIBNAME "fbxsdk-2013.3-static")
|
|
ELSE()
|
|
SET(FBX_LIBNAME "fbxsdk-2013.3-md")
|
|
ENDIF()
|
|
|
|
SET(FBX_LIBNAME_DEBUG ${FBX_LIBNAME}d)
|
|
|
|
SET( FBX_SEARCH_PATHS
|
|
$ENV{FBX_DIR}
|
|
"$ENV{ProgramW6432}/Autodesk/FBX/FBX SDK/2013.3"
|
|
"$ENV{PROGRAMFILES}/Autodesk/FBX/FBX SDK/2013.3"
|
|
"/Applications/Autodesk/FBX/FBX SDK/2013.3"
|
|
/Applications/Autodesk/FBXSDK20133
|
|
)
|
|
|
|
# search for headers & debug/release libraries
|
|
FIND_PATH(FBX_INCLUDE_DIR "fbxsdk.h"
|
|
PATHS ${FBX_SEARCH_PATHS}
|
|
PATH_SUFFIXES "include")
|
|
FIND_LIBRARY( FBX_LIBRARY ${FBX_LIBNAME}
|
|
PATHS ${FBX_SEARCH_PATHS}
|
|
PATH_SUFFIXES "lib/${FBX_LIBDIR}")
|
|
|
|
FIND_LIBRARY( FBX_LIBRARY_DEBUG ${FBX_LIBNAME_DEBUG}
|
|
PATHS ${FBX_SEARCH_PATHS}
|
|
PATH_SUFFIXES "lib/${FBX_LIBDIR}")
|
|
IF(FBX_LIBRARY AND FBX_LIBRARY_DEBUG AND FBX_INCLUDE_DIR)
|
|
SET(FBX_FOUND "YES")
|
|
ELSE()
|
|
SET(FBX_FOUND "NO")
|
|
ENDIF()
|
|
|
|
ENDIF()
|