This commit is contained in:
2023-09-24 20:49:29 +08:00
commit 5a0b1a209e
18 changed files with 866 additions and 0 deletions
+97
View File
@@ -0,0 +1,97 @@
if(NOT DEFINED MAYA_VERSION)
set(MAYA_VERSION 2013.5 CACHE STRING "Maya version")
endif()
set(MAYA_COMPILE_DEFINITIONS "REQUIRE_IOSTREAM;_BOOL;_CRT_SECURE_NO_WARNINGS;NOMINMAX")
set(MAYA_INSTALL_BASE_SUFFIX "")
set(MAYA_LIB_SUFFIX "lib")
set(MAYA_INC_SUFFIX "include")
set(MAYA_TARGET_TYPE LIBRARY)
if(WIN32)
# Windows
set(MAYA_INSTALL_BASE "C:/Program Files/Autodesk")
set(OPENMAYA OpenMaya.lib)
set(MAYA_COMPILE_DEFINITIONS "${MAYA_COMPILE_DEFINITIONS};NT_PLUGIN")
set(MAYA_PLUGIN_EXTENSION ".mll")
set(MAYA_TARGET_TYPE RUNTIME)
elseif(APPLE)
# Mac
set(MAYA_INSTALL_BASE "/Applications/Autodesk")
set(OPENMAYA libOpenMaya.dylib)
set(MAYA_LIB_SUFFIX "Maya.app/Contents/MacOS")
set(MAYA_INC_SUFFIX "devkit/include")
set(MAYA_COMPILE_DEFINITIONS "${MAYA_COMPILE_DEFINITIONS};OSMac")
set(MAYA_PLUGIN_EXTENSION ".dylib")
else()
# Linux
set(MAYA_INSTALL_BASE "/usr/autodesk")
set(MAYA_INSTALL_BASE_SUFFIX -x64)
set(OPENMAYA libOpenMaya.so)
set(MAYA_COMPILE_DEFINITIONS "${MAYA_COMPILE_DEFINITIONS};LINUX")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
set(MAYA_PLUGIN_EXTENSION ".so")
endif()
set(MAYA_INSTALL_BASE_PATH ${MAYA_INSTALL_BASE} CACHE STRING "Maya Root Installation Path")
if(NOT DEFINED MAYA_LOCATION)
set(MAYA_LOCATION ${MAYA_INSTALL_BASE_PATH}/maya${MAYA_VERSION}${MAYA_INSTALL_BASE_SUFFIX})
endif()
message(STATUS "MAYA_INSTALL_BASE_PATH : ${MAYA_INSTALL_BASE_PATH}")
find_path(MAYA_LIBRARY_DIR ${OPENMAYA}
PATHS
${MAYA_LOCATION}
$ENV{MAYA_LOCATION}
PATH_SUFFIXES
"${MAYA_LIB_SUFFIX}/"
DOC "Maya library path"
)
find_path(MAYA_INCLUDE_DIR maya/MTypes.h
PATHS
${MAYA_LOCATION}
$ENV{MAYA_LOCATION}
PATH_SUFFIXES
"${MAYA_INC_SUFFIX}/"
DOC "Maya include path"
)
message(STATUS "${MAYA_INCLUDE_DIR}/maya/MTypes.h")
if(MAYA_INCLUDE_DIR AND EXISTS "${MAYA_INCLUDE_DIR}/maya/MTypes.h")
file(STRINGS
${MAYA_INCLUDE_DIR}/maya/MTypes.h
_maya_tmp
REGEX "#define MAYA_APP_VERSION .*$")
string(REGEX MATCHALL "[0-9]+$" MAYA_VERSION ${_maya_tmp})
message(STATUS "MAYA_VERSION : ${MAYA_VERSION}")
endif()
set(_MAYA_LIBRARIES OpenMaya OpenMayaAnim OpenMayaFx OpenMayaRender OpenMayaUI Foundation)
foreach(MAYA_LIB ${_MAYA_LIBRARIES})
find_library(MAYA_${MAYA_LIB}_LIBRARY NAMES ${MAYA_LIB} PATHS ${MAYA_LIBRARY_DIR} NO_DEFAULT_PATH)
set(MAYA_LIBRARIES ${MAYA_LIBRARIES} ${MAYA_${MAYA_LIB}_LIBRARY})
endforeach()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Maya
REQUIRED_VARS
MAYA_INCLUDE_DIR
MAYA_LIBRARIES
VERSION_VAR
MAYA_VERSION)
function(MAYA_PLUGIN _target)
if(WIN32)
set_target_properties(${_target} PROPERTIES
LINK_FLAGS "/export:initializePlugin /export:uninitializePlugin")
endif()
set_target_properties(${_target} PROPERTIES
COMPILE_DEFINITIONS "${MAYA_COMPILE_DEFINITIONS}"
PREFIX ""
SUFFIX ${MAYA_PLUGIN_EXTENSION}
)
endfunction()
+45
View File
@@ -0,0 +1,45 @@
#-*-cmake-*-
#
# This auxiliary CMake file helps in find the pybind headers
#
# PYBIND11_FOUND Set if Pybind11 is found.
# PYBIND11_INCLUDE_DIR Pybind11's include directory.
# PYBIND11_VERSION Pybind11 version
# PYBIND11_VERSION_MAJOR
# PYBIND11_VERSION_MINOR
# PYBIND11_VERSION_PATCH
find_package(PackageHandleStandardArgs)
if (EXISTS "$ENV{PYBIND11_HOME}")
set(PYBIND11_HOME $ENV{PYBIND11_HOME})
endif ()
# include/pybind11/detail/common.h
find_path(PYBIND11_INCLUDE_DIR pybind11/pybind11.h
PATHS ${PYBIND11_HOME}/include
DOC "Pybind11 Include Path")
if(PYBIND11_INCLUDE_DIR AND EXISTS "${PYBIND11_INCLUDE_DIR}/pybind11/detail/common.h")
foreach(_pybind11_comp MAJOR MINOR PATCH)
file(STRINGS
${PYBIND11_INCLUDE_DIR}/pybind11/detail/common.h
_pybind11_tmp
REGEX "#define PYBIND11_VERSION_${_pybind11_comp} .*$")
string(REGEX MATCHALL "[0-9]+$" PYBIND11_VERSION_${_pybind11_comp} ${_pybind11_tmp})
endforeach()
set(PYBIND11_VERSION ${PYBIND11_VERSION_MAJOR}.${PYBIND11_VERSION_MINOR}.${PYBIND11_VERSION_PATCH})
endif()
message(STATUS "PYBIND11_VERSION : ${PYBIND11_VERSION}")
message(STATUS "PYBIND11_HOME : ${PYBIND11_HOME}")
message(STATUS "PYBIND11_INCLUDE_DIR : ${PYBIND11_INCLUDE_DIR}")
find_package_handle_standard_args(Pybind11
REQUIRED_VARS
PYBIND11_INCLUDE_DIR
VERSION_VAR
PYBIND11_VERSION
)