set u3d install

This commit is contained in:
alemuntoni 2020-10-23 17:53:43 +02:00
parent 8804a23752
commit 7303ee08ec
3 changed files with 120 additions and 16 deletions

View File

@ -264,20 +264,6 @@ SET(DEPENDENCIES_SRCS
${JPEG_SRCS}
${JPEG_PUBLIC_HDRS}
${JPEG_PRIVATE_HDRS})
SET_PROPERTY( SOURCE
${U3D_DIR}/src/RTL/Platform/${U3D_PLATFORM}/Common/IFXOSLoader.cpp
PROPERTY COMPILE_DEFINITIONS U3DPluginsPath="Plugins" U3DCorePath="." )
IF(STDIO_HACK)
SET_PROPERTY( SOURCE
${U3D_DIR}/src/RTL/Component/Exporting/CIFXStdioWriteBufferX.cpp
${U3D_DIR}/src/IDTF/ConverterDriver.cpp
${U3D_DIR}/src/IDTF/File.cpp
PROPERTY COMPILE_DEFINITIONS STDIO_HACK )
SET_PROPERTY( SOURCE
${U3D_DIR}/src/RTL/Platform/${U3D_PLATFORM}/Common/IFXOSLoader.cpp
PROPERTY COMPILE_DEFINITIONS U3DPluginsPath="Plugins" U3DCorePath="." STDIO_HACK )
ENDIF(STDIO_HACK)
#====
@ -1481,8 +1467,29 @@ ENDIF(APPLE)
IF(UNIX AND NOT APPLE)
ADD_LIBRARY( external-IDTFConverter STATIC ${IDTFConverter_SRCS} ${IDTFConverter_HDRS} )
ENDIF(UNIX AND NOT APPLE)
set_target_properties(external-IDTFConverter PROPERTIES
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/external/u3d)
set(OUT_PATH_LIB "${PROJECT_BINARY_DIR}/external/u3d")
message(--U3D_OUT_PATH: ${OUT_PATH_LIB})
TARGET_LINK_LIBRARIES( external-IDTFConverter IFXCoreStatic ${ADDITIONAL_LIBRARIES} ${CMAKE_DL_LIBS} )
set_property(TARGET external-IDTFConverter PROPERTY FOLDER External)
SET_PROPERTY( SOURCE
${U3D_DIR}/src/RTL/Platform/${U3D_PLATFORM}/Common/IFXOSLoader.cpp
PROPERTY COMPILE_DEFINITIONS U3DPluginsPath="Plugins" U3DCorePath="${OUT_PATH_LIB}" U3DInstallPath="${MESHLAB_LIB_INSTALL_DIR}")
IF(STDIO_HACK)
SET_PROPERTY( SOURCE
${U3D_DIR}/src/RTL/Component/Exporting/CIFXStdioWriteBufferX.cpp
${U3D_DIR}/src/IDTF/ConverterDriver.cpp
${U3D_DIR}/src/IDTF/File.cpp
PROPERTY COMPILE_DEFINITIONS STDIO_HACK )
SET_PROPERTY( SOURCE
${U3D_DIR}/src/RTL/Platform/${U3D_PLATFORM}/Common/IFXOSLoader.cpp
PROPERTY COMPILE_DEFINITIONS U3DPluginsPath="Plugins" U3DCorePath="${OUT_PATH_LIB}" U3DInstallPath="${MESHLAB_LIB_INSTALL_DIR}" STDIO_HACK )
ENDIF(STDIO_HACK)
install(TARGETS IFXCore IFXCoreStatic IFXExporting IFXScheduling external-IDTFConverter DESTINATION ${MESHLAB_LIB_INSTALL_DIR})

View File

@ -44,7 +44,13 @@ static const char* s_pCorePathEnvVar = "U3D_LIBDIR";
static const char* s_pCorePathDefault = U3DCorePath;
#else
static const char* s_pCorePathDefault = ".";
#endif
#endif //U3DCorePath
#ifdef U3DInstallPath
static const char* s_pInstallPathDefault = U3DInstallPath;
#else
static const char* s_pInstallPathDefault = ".";
#endif //U3DInstallPath
#ifdef U3DPluginsPath
#define IFXOSFI_SUBDIR U3DPluginsPath
#else
@ -95,6 +101,28 @@ IFXHANDLE IFXAPI IFXLoadLibrary( const IFXCHAR* pFileName )
IFXTRACE_GENERIC(L"%s:%i \"%s/%s\" FileName lenth is more then %i\n",__FILE__, __LINE__, pCorePath, fileName, _MAXIMUM_FILENAME_LENGTH);
}
}
//add for meshlab
if (!handle)
{
const char* pCorePath = s_pInstallPathDefault;
char newFileName[_MAXIMUM_FILENAME_LENGTH];
size += strlen(pCorePath);
if (size+1 < _MAXIMUM_FILENAME_LENGTH)
{
strcpy(newFileName, pCorePath);
strcat(newFileName, "/");
strcat(newFileName, fileName);
handle = dlopen(newFileName, RTLD_LAZY | RTLD_GLOBAL );
}
else
{
IFXTRACE_GENERIC(L"%s:%i \"%s/%s\" FileName lenth is more then %i\n",__FILE__, __LINE__, pCorePath, fileName, _MAXIMUM_FILENAME_LENGTH);
}
}
if (!handle)
{
@ -116,6 +144,27 @@ IFXHANDLE IFXAPI IFXLoadLibrary( const IFXCHAR* pFileName )
IFXTRACE_GENERIC(L"%s:%i \"%s/" IFXOSFI_SUBDIR "/%s\" FileName lenth is more then %i\n",__FILE__, __LINE__, pCorePath, fileName, _MAXIMUM_FILENAME_LENGTH);
}
}
//add for meshlab
if (!handle)
{
const char* pCorePath = s_pInstallPathDefault;
char newFileName[_MAXIMUM_FILENAME_LENGTH];
if (size+2+strlen(IFXOSFI_SUBDIR) < _MAXIMUM_FILENAME_LENGTH)
{
strcpy(newFileName, pCorePath);
strcat(newFileName, "/" IFXOSFI_SUBDIR "/");
strcat(newFileName, fileName);
handle = dlopen(newFileName, RTLD_LAZY | RTLD_GLOBAL );
}
else
{
IFXTRACE_GENERIC(L"%s:%i \"%s/" IFXOSFI_SUBDIR "/%s\" FileName lenth is more then %i\n",__FILE__, __LINE__, pCorePath, fileName, _MAXIMUM_FILENAME_LENGTH);
}
}
if (!handle)
{

View File

@ -43,7 +43,12 @@ static const char* s_pCorePathEnvVar = "U3D_LIBDIR";
static const char* s_pCorePathDefault = U3DCorePath;
#else
static const char* s_pCorePathDefault = ".";
#endif
#endif //U3DCorePath
#ifdef U3DInstallPath
static const char* s_pInstallPathDefault = U3DInstallPath;
#else
static const char* s_pInstallPathDefault = ".";
#endif //U3DInstallPath
#ifdef U3DPluginsPath
#define IFXOSFI_SUBDIR U3DPluginsPath
#else
@ -94,6 +99,28 @@ IFXHANDLE IFXAPI IFXLoadLibrary( const IFXCHAR* pFileName )
IFXTRACE_GENERIC(L"%s:%i \"%s/%s\" FileName lenth is more then %i\n",__FILE__, __LINE__, pCorePath, fileName, _MAXIMUM_FILENAME_LENGTH);
}
}
//add for meshlab
if (!handle)
{
const char* pCorePath = s_pInstallPathDefault;
char newFileName[_MAXIMUM_FILENAME_LENGTH];
size += strlen(pCorePath);
if (size+1 < _MAXIMUM_FILENAME_LENGTH)
{
strcpy(newFileName, pCorePath);
strcat(newFileName, "/");
strcat(newFileName, fileName);
handle = dlopen(newFileName, RTLD_LAZY );
}
else
{
IFXTRACE_GENERIC(L"%s:%i \"%s/%s\" FileName lenth is more then %i\n",__FILE__, __LINE__, pCorePath, fileName, _MAXIMUM_FILENAME_LENGTH);
}
}
if (!handle)
{
@ -115,6 +142,27 @@ IFXHANDLE IFXAPI IFXLoadLibrary( const IFXCHAR* pFileName )
IFXTRACE_GENERIC(L"%s:%i \"%s/" IFXOSFI_SUBDIR "/%s\" FileName lenth is more then %i\n",__FILE__, __LINE__, pCorePath, fileName, _MAXIMUM_FILENAME_LENGTH);
}
}
//add for meshlab
if (!handle)
{
const char* pCorePath = s_pInstallPathDefault;
char newFileName[_MAXIMUM_FILENAME_LENGTH];
if (size+2+strlen(IFXOSFI_SUBDIR) < _MAXIMUM_FILENAME_LENGTH)
{
strcpy(newFileName, pCorePath);
strcat(newFileName, "/" IFXOSFI_SUBDIR "/");
strcat(newFileName, fileName);
handle = dlopen(newFileName, RTLD_LAZY );
}
else
{
IFXTRACE_GENERIC(L"%s:%i \"%s/" IFXOSFI_SUBDIR "/%s\" FileName lenth is more then %i\n",__FILE__, __LINE__, pCorePath, fileName, _MAXIMUM_FILENAME_LENGTH);
}
}
if (!handle)
{