BifrostUtil/cmake/modules/FindMaya.cmake

211 lines
7.0 KiB
CMake

include(FindPackageHandleStandardArgs)
if(NOT DEFINED MAYA_VERSION)
set(MAYA_VERSION 2018)
endif()
if(DEFINED ENV{MAYA_VERSION})
set(MAYA_VERSION $ENV{MAYA_VERSION})
endif()
set(MAYA_BIN_SUFFIX "bin")
set(MAYA_INC_SUFFIX "include")
set(MAYA_LIB_SUFFIX "lib")
if(WIN32)
set(MAYA_LOCATION "$ENV{ProgramFiles}/Autodesk/Maya${MAYA_VERSION}")
set(MAYA_PLUGIN_EXT ".mll")
set(MAYA_COMPILE_FLAGS "/MD /D \"NT_PLUGIN\" /D \"REQUIRE_IOSTREAM\" /D \"_BOOL\"" )
set(MAYA_LINK_FLAGS " /export:initializePlugin /export:uninitializePlugin " )
elseif(APPLE)
set(MAYA_LOCATION "/Applications/Autodesk/maya${MAYA_VERSION}")
set(MAYA_PLUGIN_EXT ".bundle")
set(MAYA_COMPILE_FLAGS "-DAW_NEW_IOSTREAMS -DCC_GNU_ -DOSMac_ -DOSMacOSX_ -DOSMac_MachO_ -DREQUIRE_IOSTREAM -fno-gnu-keywords -D_LANGUAGE_C_PLUS_PLUS")
set(MAYA_LINK_FLAGS "-fno-gnu-keywords -framework System -framework SystemConfiguration -framework CoreServices -framework Carbon -framework Cocoa -framework ApplicationServices -framework Quicktime -framework IOKit -bundle -fPIC -L${ALEMBIC_MAYA_LIB_ROOT} -Wl,-executable_path,${ALEMBIC_MAYA_LIB_ROOT}")
else()
set(MAYA_LOCATION "/usr/autodesk/maya${MAYA_VERSION}")
set(MAYA_PLUGIN_EXT ".so")
set(MAYA_COMPILE_FLAGS "-m64 -g -pthread -pipe -D_BOOL -DLINUX -DLINUX_64 -DREQUIRE_IOSTREAM -fPIC -Wno-deprecated -fno-gnu-keywords")
set(MAYA_LINK_FLAGS "-shared -m64 -g -pthread -pipe -D_BOOL -DLINUX -DLINUX_64 -DREQUIRE_IOSTREAM -fPIC -Wno-deprecated -fno-gnu-keywords -Wl,-Bsymbolic")
endif()
set(MAYA_ROOT ${MAYA_LOCATION})
string(REPLACE "\\" "/" MAYA_ROOT ${MAYA_ROOT})
if(DEFINED ENV{MAYA_LOCATION})
set(MAYA_ROOT $ENV{MAYA_LOCATION})
endif()
set(MAYA_EXE MAYA_EXE-NOTFOUND)
find_program(MAYA_EXE maya
PATHS
${MAYA_ROOT}
PATH_SUFFIXES
"${MAYA_BIN_SUFFIX}"
NO_DEFAULT_PATH
DOC "Maya Executable Path")
set(MAYA_PY_EXE MAYA_PY_EXE-NOTFOUND)
find_program(MAYA_PY_EXE mayapy
PATHS
${MAYA_ROOT}
PATH_SUFFIXES
"${MAYA_BIN_SUFFIX}"
NO_DEFAULT_PATH
DOC "Maya Python Executable Path")
set(MAYA_INCLUDE_PATH MAYA_INCLUDE_PATH-NOTFOUND)
find_path(MAYA_INCLUDE_PATH "maya/MFn.h"
PATHS
${MAYA_ROOT}
PATH_SUFFIXES
"${MAYA_INC_SUFFIX}"
NO_DEFAULT_PATH
DOC "Maya Include Dir")
set(MAYA_OPENMAYA_LIBRARY MAYA_OPENMAYA_LIBRARY-NOTFOUND)
find_library(MAYA_OPENMAYA_LIBRARY OpenMaya
PATHS
"${MAYA_ROOT}/lib"
DOC "OpenMaya Libray Path")
if(MAYA_OPENMAYA_LIBRARY)
set(MAYA_LIBRARY_PATH "${MAYA_ROOT}/lib")
endif()
set(MAYA_OPENMAYAFX_LIBRARY MAYA_OPENMAYAFX_LIBRARY-NOTFOUND)
find_library(MAYA_OPENMAYAFX_LIBRARY OpenMayaFX
PATHS
"${MAYA_ROOT}/lib"
DOC "OpenMayaFX Libray Path")
set(MAYA_OPENMAYAANIM_LIBRARY MAYA_OPENMAYAANIM_LIBRARY-NOTFOUND)
find_library(MAYA_OPENMAYAANIM_LIBRARY OpenMayaAnim
PATHS
"${MAYA_ROOT}/lib"
DOC "OpenMayaAnim Libray Path")
set(MAYA_OPENMAYAUI_LIBRARY MAYA_OPENMAYAUI_LIBRARY-NOTFOUND)
find_library(MAYA_OPENMAYAUI_LIBRARY OpenMayaUI
PATHS
"${MAYA_ROOT}/lib"
DOC "OpenMayaUI Libray Path")
set(MAYA_OPENMAYARENDER_LIBRARY MAYA_OPENMAYARENDER_LIBRARY-NOTFOUND)
find_library(MAYA_OPENMAYARENDER_LIBRARY OpenMayaRender
PATHS
"${MAYA_ROOT}/lib"
DOC "OpenMayaRender Libray Path")
set(MAYA_FOUNDATION_LIBRARY MAYA_FOUNDATION_LIBRARY-NOTFOUND)
find_library(MAYA_FOUNDATION_LIBRARY Foundation
PATHS
"${MAYA_ROOT}/lib"
DOC "Foundation Libray Path")
set(XGEN_PLUGIN "plug-ins/xgen")
set(MAYA_XGEN_ROOT MAYA_XGEN_ROOT-NOTFOUND)
if(EXISTS "${MAYA_ROOT}/plug-ins/xgen")
set(MAYA_XGEN_ROOT "${MAYA_ROOT}/plug-ins/xgen")
endif()
set(MAYA_XGEN_INCLUDE_PATH MAYA_XGEN_INCLUDE_PATH-NOTFOUND)
find_path(MAYA_XGEN_INCLUDE_PATH "XGen/XgWinExport.h"
PATHS
${MAYA_ROOT}
PATH_SUFFIXES
"${XGEN_PLUGIN}/${MAYA_INC_SUFFIX}"
NO_DEFAULT_PATH
DOC "Maya XGen Include Dir")
if(MAYA_VERSION GREATER_EQUAL 2020)
find_path(MAYA_XGEN_INCLUDE_PATH "xgen/src/xgcore/XgConfig.h"
PATHS
${MAYA_ROOT}
PATH_SUFFIXES
"${XGEN_PLUGIN}/${MAYA_INC_SUFFIX}"
NO_DEFAULT_PATH
DOC "Maya XGen Include Dir")
endif()
set(MAYA_ADSKXGEN_LIBRARY MAYA_ADSKXGEN_LIBRARY-NOTFOUND)
find_library(MAYA_ADSKXGEN_LIBRARY
AdskXGen
libAdskXGen
PATHS
"${MAYA_ROOT}/plug-ins/xgen/lib"
DOC "libAdskXGen Libray Path")
set(MAYA_XGEN_LIBRARY_PATH MAYA_XGEN_LIBRARY_PATH-NOTFOUND)
if(MAYA_ADSKXGEN_LIBRARY)
set(MAYA_XGEN_LIBRARY_PATH "${MAYA_ROOT}/plug-ins/xgen/lib")
endif()
set(MAYA_ADSKXPD_LIBRARY MAYA_ADSKXPD_LIBRARY-NOTFOUND)
find_library(MAYA_ADSKXPD_LIBRARY
AdskXpd
libAdskXpd
PATHS
"${MAYA_ROOT}/plug-ins/xgen/lib"
DOC "libAdskXpd Libray Path")
set(MAYA_ADSKSEEXPR_LIBRARY MAYA_ADSKSEEXPR_LIBRARY-NOTFOUND)
find_library(MAYA_ADSKSEEXPR_LIBRARY
AdskSeExpr
libAdskSeExpr
PATHS
"${MAYA_ROOT}/plug-ins/xgen/lib"
DOC "libAdskSeExpr Libray Path")
set(MAYA_LIBRARIES
${MAYA_FOUNDATION_LIBRARY}
${MAYA_OPENMAYA_LIBRARY}
${MAYA_OPENMAYAANIM_LIBRARY}
${MAYA_OPENMAYAFX_LIBRARY}
${MAYA_OPENMAYARENDER_LIBRARY}
${MAYA_OPENMAYAUI_LIBRARY})
set(MAYA_XGEN_LIBRARIES
${MAYA_ADSKXGEN_LIBRARY}
${MAYA_ADSKXPD_LIBRARY}
${MAYA_ADSKSEEXPR_LIBRARY})
message(STATUS "MAYA_ROOT : ${MAYA_ROOT}")
message(STATUS "MAYA_EXE : ${MAYA_EXE}")
message(STATUS "MAYA_PY_EXE : ${MAYA_PY_EXE}")
message(STATUS "MAYA_INCLUDE_PATH : ${MAYA_INCLUDE_PATH}")
message(STATUS "MAYA_LIBRARY_PATH : ${MAYA_LIBRARY_PATH}")
message(STATUS "MAYA_FOUNDATION_LIBRARY : ${MAYA_FOUNDATION_LIBRARY}")
message(STATUS "MAYA_OPENMAYA_LIBRARY : ${MAYA_OPENMAYA_LIBRARY}")
message(STATUS "MAYA_OPENMAYAANIM_LIBRARY : ${MAYA_OPENMAYAANIM_LIBRARY}")
message(STATUS "MAYA_OPENMAYAFX_LIBRARY : ${MAYA_OPENMAYAFX_LIBRARY}")
message(STATUS "MAYA_OPENMAYARENDER_LIBRARY : ${MAYA_OPENMAYARENDER_LIBRARY}")
message(STATUS "MAYA_OPENMAYAUI_LIBRARY : ${MAYA_OPENMAYAUI_LIBRARY}")
message(STATUS "----------------------------------------------")
message(STATUS "Maya XGen SDK")
message(STATUS "----------------------------------------------")
message(STATUS "MAYA_XGEN_ROOT : ${MAYA_XGEN_ROOT}")
message(STATUS "MAYA_XGEN_INCLUDE_PATH : ${MAYA_XGEN_INCLUDE_PATH}")
message(STATUS "MAYA_XGEN_LIBRARY_PATH : ${MAYA_XGEN_LIBRARY_PATH}")
message(STATUS "MAYA_ADSKXGEN_LIBRARY : ${MAYA_ADSKXGEN_LIBRARY}")
message(STATUS "MAYA_ADSKXPD_LIBRARY : ${MAYA_ADSKXPD_LIBRARY}")
message(STATUS "MAYA_ADSKSEEXPR_LIBRARY : ${MAYA_ADSKSEEXPR_LIBRARY}")
find_package_handle_standard_args(Maya
REQUIRED_VARS
MAYA_ROOT
MAYA_INCLUDE_PATH
MAYA_LIBRARY_PATH
MAYA_FOUNDATION_LIBRARY
MAYA_OPENMAYA_LIBRARY
MAYA_OPENMAYAANIM_LIBRARY
MAYA_OPENMAYAFX_LIBRARY
MAYA_OPENMAYARENDER_LIBRARY
MAYA_OPENMAYAUI_LIBRARY
VERSION_VAR
MAYA_VERSION
)