Files

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

97 lines
3.7 KiB
CMake
Raw Permalink Normal View History

################################################################################
# #
# This file is part of IfcOpenShell. #
# #
# IfcOpenShell is free software: you can redistribute it and/or modify #
# it under the terms of the Lesser GNU General Public License as published by #
# the Free Software Foundation, either version 3.0 of the License, or #
# (at your option) any later version. #
# #
# IfcOpenShell is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# Lesser GNU General Public License for more details. #
# #
# You should have received a copy of the Lesser GNU General Public License #
# along with this program. If not, see <http://www.gnu.org/licenses/>. #
# #
################################################################################
2023-09-07 11:15:53 +02:00
# check for 3ds Max SDK
2019-04-03 15:08:14 +02:00
foreach(max_year RANGE 2014 2030)
2023-09-07 11:15:53 +02:00
set(max_sdk "$ENV{ADSK_3DSMAX_SDK_${max_year}}")
if(NOT "${max_sdk}" STREQUAL "")
message(STATUS "Autodesk 3ds Max SDK ${max_year} found at ${max_sdk}")
list(APPEND FOUND_MAX_YEARS ${max_year})
list(APPEND FOUND_MAX_SDKS ${max_sdk})
set(HAS_MAX TRUE)
endif()
endforeach()
2019-04-03 15:08:14 +02:00
2023-09-07 11:15:53 +02:00
if(HAS_MAX)
# build libraray for each found 3ds Max SDK
foreach(max_year max_sdk IN ZIP_LISTS FOUND_MAX_YEARS FOUND_MAX_SDKS)
message(STATUS "Building IFCMax library for Autodesk 3ds Max SDK ${max_year}")
2025-12-20 13:27:35 +05:00
include_directories(
${INCLUDE_DIRECTORIES}
${OPENCOLLADA_INCLUDE_DIRS}
${ICU_INCLUDE_DIR}
${Boost_INCLUDE_DIRS}
${max_sdk}/include
2023-09-07 11:15:53 +02:00
)
2023-09-07 11:15:53 +02:00
# All recent versions of 3ds Max (2014 and newer) are 64-bit only so assume lib/x64 directory
2025-12-20 13:27:35 +05:00
link_directories(
${LINK_DIRECTORIES}
${IfcOpenShell_BINARY_DIR}
${OPENCOLLADA_LIBRARY_DIR}
${ICU_LIBRARY_DIR}
${Boost_LIBRARY_DIRS}
${max_sdk}/lib/x64/Release
2023-09-07 11:15:53 +02:00
)
2023-09-07 11:15:53 +02:00
add_library(IfcMax_${max_year} SHARED IfcMax.h IfcMax.cpp)
2023-09-07 11:15:53 +02:00
# TODO: find the minimal subset of 3dsmax libraries to reference
2025-12-20 13:27:35 +05:00
target_link_libraries(
IfcMax_${max_year}
${IFCOPENSHELL_LIBRARIES}
2023-09-07 11:15:53 +02:00
bmm.lib
Comctl32.lib
core.lib
CustDlg.lib
edmodel.lib
expr.lib
flt.lib
geom.lib
gfx.lib
gup.lib
imageViewers.lib
ManipSys.lib
maxnet.lib
Maxscrpt.lib
maxutil.lib
MenuMan.lib
menus.lib
mesh.lib
MNMath.lib
Paramblk2.lib
particle.lib
Poly.lib
RenderUtil.lib
tessint.lib
viewfile.lib
zlibdll.lib
${OpenCASCADE_LIBRARIES}
2023-09-07 11:15:53 +02:00
)
2019-04-03 15:08:14 +02:00
2023-09-07 11:15:53 +02:00
set_target_properties(IfcMax_${max_year} PROPERTIES SUFFIX ".dli")
2025-11-28 16:45:40 +01:00
install(TARGETS IfcMax_${max_year})
2023-09-07 11:15:53 +02:00
endforeach()
else()
message(STATUS "Autodesk 3ds Max SDK not found, is required to build IFCMax.")
2019-04-03 15:08:14 +02:00
endif()