2016-10-13 18:46:10 +00:00
|
|
|
# - Find DirectInput
|
|
|
|
# Find the DirectSound includes and libraries
|
|
|
|
#
|
|
|
|
# MAXSDK_DIR - 3DSMAX SDK root directory
|
|
|
|
# MAXSDK_INCLUDE_DIR - where to find baseinterface.h
|
|
|
|
# MAXSDK_LIBRARIES - List of libraries when using 3DSMAX.
|
|
|
|
# MAXSDK_FOUND - True if MAX SDK found.
|
|
|
|
|
|
|
|
if(MAXSDK_INCLUDE_DIR)
|
|
|
|
# Already in cache, be silent
|
|
|
|
SET(MAXSDK_FIND_QUIETLY TRUE)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
FIND_PATH(MAXSDK_DIR
|
|
|
|
"include/maxversion.h"
|
|
|
|
HINTS
|
|
|
|
"$ENV{MAXSDK_DIR}"
|
|
|
|
PATHS
|
|
|
|
"$ENV{ADSK_3DSMAX_SDK_2012}/maxsdk"
|
|
|
|
"$ENV{3DSMAX_2011_SDK_PATH}/maxsdk"
|
2016-11-20 13:51:11 +00:00
|
|
|
"$ENV{PROGRAMFILES}/Autodesk/3ds Max 2017 SDK/maxsdk"
|
2016-10-13 18:46:10 +00:00
|
|
|
"$ENV{PROGRAMFILES}/Autodesk/3ds Max 2010 SDK/maxsdk"
|
|
|
|
"$ENV{PROGRAMFILES}/Autodesk/3ds Max 2009 SDK/maxsdk"
|
|
|
|
"$ENV{PROGRAMFILES}/Autodesk/3ds Max 2008 SDK/maxsdk"
|
|
|
|
"$ENV{PROGRAMFILES}/Autodesk/3ds Max 9 SDK/maxsdk"
|
|
|
|
)
|
|
|
|
|
|
|
|
FIND_PATH(MAXSDK_INCLUDE_DIR
|
|
|
|
max.h
|
|
|
|
HINTS
|
|
|
|
${MAXSDK_DIR}/include
|
|
|
|
)
|
|
|
|
|
|
|
|
FIND_PATH(MAXSDK_CS_INCLUDE_DIR bipexp.h
|
|
|
|
HINTS
|
|
|
|
${MAXSDK_DIR}/include/CS
|
|
|
|
)
|
|
|
|
|
|
|
|
IF(TARGET_X64)
|
2016-11-20 13:51:11 +00:00
|
|
|
SET(MAXSDK_LIBRARY_DIRS ${MAXSDK_DIR}/x64/lib ${MAXSDK_DIR}/lib/x64/Release)
|
2016-10-13 18:46:10 +00:00
|
|
|
ELSE()
|
|
|
|
SET(MAXSDK_LIBRARY_DIRS ${MAXSDK_DIR}/lib)
|
|
|
|
ENDIF()
|
|
|
|
|
2016-11-20 13:51:11 +00:00
|
|
|
MACRO(FIND_3DS_LIBRARY MYLIBRARY MYLIBRARYNAME)
|
2016-10-13 18:46:10 +00:00
|
|
|
FIND_LIBRARY(${MYLIBRARY}
|
|
|
|
NAMES ${MYLIBRARYNAME}
|
|
|
|
HINTS
|
|
|
|
${MAXSDK_LIBRARY_DIRS}
|
|
|
|
)
|
|
|
|
ENDMACRO()
|
|
|
|
|
|
|
|
FIND_3DS_LIBRARY(MAXSDK_CORE_LIBRARY core)
|
|
|
|
FIND_3DS_LIBRARY(MAXSDK_GEOM_LIBRARY geom)
|
|
|
|
FIND_3DS_LIBRARY(MAXSDK_GFX_LIBRARY gfx)
|
|
|
|
FIND_3DS_LIBRARY(MAXSDK_MESH_LIBRARY mesh)
|
|
|
|
FIND_3DS_LIBRARY(MAXSDK_MAXUTIL_LIBRARY maxutil)
|
|
|
|
FIND_3DS_LIBRARY(MAXSDK_MAXSCRIPT_LIBRARY maxscrpt)
|
|
|
|
FIND_3DS_LIBRARY(MAXSDK_PARAMBLK2_LIBRARY paramblk2)
|
|
|
|
FIND_3DS_LIBRARY(MAXSDK_BMM_LIBRARY bmm)
|
|
|
|
|
|
|
|
# Handle the QUIETLY and REQUIRED arguments and set MAXSDK_FOUND to TRUE if
|
|
|
|
# all listed variables are TRUE.
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
|
|
find_package_handle_standard_args(MAXSDK DEFAULT_MSG
|
|
|
|
MAXSDK_INCLUDE_DIR MAXSDK_CORE_LIBRARY)
|
|
|
|
|
|
|
|
if(MAXSDK_FOUND)
|
|
|
|
SET(MAXSDK_LIBRARIES
|
|
|
|
${MAXSDK_CORE_LIBRARY}
|
|
|
|
${MAXSDK_GEOM_LIBRARY}
|
|
|
|
${MAXSDK_GFX_LIBRARY}
|
|
|
|
${MAXSDK_MESH_LIBRARY}
|
|
|
|
${MAXSDK_MAXUTIL_LIBRARY}
|
|
|
|
${MAXSDK_MAXSCRIPT_LIBRARY}
|
|
|
|
${MAXSDK_PARAMBLK2_LIBRARY}
|
2016-11-20 13:51:11 +00:00
|
|
|
${MAXSDK_BMM_LIBRARY})
|
2016-10-13 18:46:10 +00:00
|
|
|
|
2016-11-20 13:51:11 +00:00
|
|
|
# parse maxversion.h to determine SDK version
|
|
|
|
IF(EXISTS "${MAXSDK_DIR}/include/maxversion.h")
|
|
|
|
FILE(STRINGS "${MAXSDK_DIR}/include/maxversion.h" LINES REGEX "#define MAX_PRODUCT_YEAR_NUMBER ([0-9]+)")
|
|
|
|
|
|
|
|
STRING(REGEX REPLACE ".+MAX_PRODUCT_YEAR_NUMBER ([0-9]+)" "\\1" MAXSDK_VERSION "${LINES}")
|
|
|
|
UNSET(LINES)
|
|
|
|
ELSE()
|
|
|
|
SET(MAXSDK_VERSION "Unknown")
|
|
|
|
ENDIF()
|
|
|
|
|
|
|
|
MESSAGE(STATUS "Found 3dsmax version ${MAXSDK_VERSION} in ${MAXSDK_DIR}")
|
|
|
|
|
|
|
|
# 3ds Max 2013 and later are always Unicode
|
|
|
|
IF(MAXSDK_VERSION VERSION_GREATER 2012)
|
|
|
|
SET(MAXSDK_DEFINITIONS -DUNICODE -D_UNICODE)
|
|
|
|
ELSE()
|
|
|
|
SET(MAXSDK_DEFINITIONS)
|
|
|
|
ENDIF()
|
2016-10-27 14:48:45 +00:00
|
|
|
ELSE()
|
2016-10-13 18:46:10 +00:00
|
|
|
set(MAXSDK_LIBRARIES)
|
2016-10-27 14:48:45 +00:00
|
|
|
ENDIF()
|
2016-10-13 18:46:10 +00:00
|
|
|
|
|
|
|
mark_as_advanced(MAXSDK_INCLUDE_DIR MAXSDK_LIBRARY)
|