From 5582bb2d4cefaad6c3db7c1c7b9f8eefc9394a5c Mon Sep 17 00:00:00 2001 From: Dirk Olbrich Date: Mon, 4 Sep 2023 09:36:06 +0200 Subject: [PATCH] ifcmax: format and unify cmake --- src/ifcmax/CMakeLists.txt | 63 ++++++++++++++++++++++++++------------- 1 file changed, 43 insertions(+), 20 deletions(-) diff --git a/src/ifcmax/CMakeLists.txt b/src/ifcmax/CMakeLists.txt index 7db41dc2e1..0fa85e21e2 100644 --- a/src/ifcmax/CMakeLists.txt +++ b/src/ifcmax/CMakeLists.txt @@ -17,31 +17,54 @@ # # ################################################################################ foreach(max_year RANGE 2014 2030) + set(max_sdk "$ENV{ADSK_3DSMAX_SDK_${max_year}}") + if (NOT "${max_sdk}" STREQUAL "") -set(max_sdk "$ENV{ADSK_3DSMAX_SDK_${max_year}}") -if (NOT "${max_sdk}" STREQUAL "") + include_directories(${INCLUDE_DIRECTORIES} ${OCC_INCLUDE_DIR} ${OPENCOLLADA_INCLUDE_DIRS} ${ICU_INCLUDE_DIR} + ${Boost_INCLUDE_DIRS} ${max_sdk}/include + ) -INCLUDE_DIRECTORIES(${INCLUDE_DIRECTORIES} ${OCC_INCLUDE_DIR} ${OPENCOLLADA_INCLUDE_DIRS} ${ICU_INCLUDE_DIR} - ${Boost_INCLUDE_DIRS} ${max_sdk}/include -) + # All recent versions of 3ds Max (2014 and newer) are 64-bit only so assume lib/x64 directory + link_directories(${LINK_DIRECTORIES} ${IfcOpenShell_BINARY_DIR} ${OCC_LIBRARY_DIR} ${OPENCOLLADA_LIBRARY_DIR} + ${ICU_LIBRARY_DIR} ${Boost_LIBRARY_DIRS} ${max_sdk}/lib/x64/Release + ) -# All recent versions of 3ds Max (2014 and newer) are 64-bit only so assume lib/x64 directory -LINK_DIRECTORIES(${LINK_DIRECTORIES} ${IfcOpenShell_BINARY_DIR} ${OCC_LIBRARY_DIR} ${OPENCOLLADA_LIBRARY_DIR} - ${ICU_LIBRARY_DIR} ${Boost_LIBRARY_DIRS} ${max_sdk}/lib/x64/Release -) + add_library(IfcMax_${max_year} SHARED IfcMax.h IfcMax.cpp) -ADD_LIBRARY(IfcMax_${max_year} SHARED IfcMax.h IfcMax.cpp) + # TODO: find the minimal subset of 3dsmax libraries to reference + target_link_libraries(IfcMax_${max_year} ${IFCOPENSHELL_LIBRARIES} + 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} + ) -# TODO: find the minimal subset of 3dsmax libraries to reference -TARGET_LINK_LIBRARIES(IfcMax_${max_year} ${IFCOPENSHELL_LIBRARIES} Comctl32.lib zlibdll.lib bmm.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 ${OPENCASCADE_LIBRARIES} -) + set_target_properties(IfcMax_${max_year} PROPERTIES SUFFIX ".dli") -SET_TARGET_PROPERTIES(IfcMax_${max_year} PROPERTIES SUFFIX ".dli") + install(TARGETS IfcMax_${max_year} RUNTIME DESTINATION ${BINDIR}) -INSTALL(TARGETS IfcMax_${max_year} RUNTIME DESTINATION ${BINDIR}) - -endif() + endif() endforeach() \ No newline at end of file