XERCES not found
XERCES not found
Hello,
I've problems compiling with E57.
XERECES-C is installed on the system (OpenSuSE 12.2), but cmake cannot recognize it. I've not found the findxerces.cmake or similar file to search. Creating a findxercesc.cmake on Cloudcompare root directory doesn't solve.
¿Any idea?.
Thanks in advance.
Francisco.
I've problems compiling with E57.
XERECES-C is installed on the system (OpenSuSE 12.2), but cmake cannot recognize it. I've not found the findxerces.cmake or similar file to search. Creating a findxercesc.cmake on Cloudcompare root directory doesn't solve.
¿Any idea?.
Thanks in advance.
Francisco.
Re: XERCES not found
On Windows, the findxerces module is provided by libE57 (in \cmake\Modules). Do you have it on Linux?
Daniel, CloudCompare admin
Re: XERCES not found
Hello, Daniel,
Thank you for que quick answer.
For any reason, findxerces is found at contrib/cmake/modules, but it only search for a windows installation, so I have to replace it with the libe57 tailored version (original doesn't find xercesc), but this carries another nuissance :
E57support.cmake has a problem in line 57:
target_link_libraries( ${ARGV0} debug ${Xerces_LIBRARY_DEBUG} optimized ${Xerces_LIBRARY_RELEASE} ${Boost_LIBRARIES} )
On standard xerces-c distributions (AFAIK), there is not a special debug library, so XERCES_LIBRARY_DEBUG points to Not found, and Cmake fails. Xerces_LIBRARY should be replaced with XERCESC_LIBRARY, I suppose.
Next problem arise with qCC. In directory qCC/CMakeFiles there is not CMakefiles.txt, but CMakeFiles/, so cmake fails. I'm tracing now.
Enclose my tailored version of findXERCESC.cmake.:
Thank you for que quick answer.
For any reason, findxerces is found at contrib/cmake/modules, but it only search for a windows installation, so I have to replace it with the libe57 tailored version (original doesn't find xercesc), but this carries another nuissance :
E57support.cmake has a problem in line 57:
target_link_libraries( ${ARGV0} debug ${Xerces_LIBRARY_DEBUG} optimized ${Xerces_LIBRARY_RELEASE} ${Boost_LIBRARIES} )
On standard xerces-c distributions (AFAIK), there is not a special debug library, so XERCES_LIBRARY_DEBUG points to Not found, and Cmake fails. Xerces_LIBRARY should be replaced with XERCESC_LIBRARY, I suppose.
Next problem arise with qCC. In directory qCC/CMakeFiles there is not CMakefiles.txt, but CMakeFiles/, so cmake fails. I'm tracing now.
Enclose my tailored version of findXERCESC.cmake.:
Code: Select all
# - Try to find Xerces-C
# Once done this will define
#
# XERCESC_FOUND - system has Xerces-C
# XERCESC_INCLUDE - the Xerces-C include directory
# XERCESC_LIBRARY - Link these to use Xerces-C
# XERCESC_VERSION - Xerces-C found version
IF (XERCESC_INCLUDE AND XERCESC_LIBRARY)
# in cache already
SET(XERCESC_FIND_QUIETLY FALSE)
ENDIF (XERCESC_INCLUDE AND XERCESC_LIBRARY)
OPTION(XERCESC_STATIC "Set to ON to link your project with static library (instead of DLL)." ON)
IF (NOT ${XERCESC_WAS_STATIC} STREQUAL ${XERCESC_STATIC})
UNSET(XERCESC_LIBRARY CACHE)
UNSET(XERCESC_LIBRARY_DEBUG CACHE)
ENDIF (NOT ${XERCESC_WAS_STATIC} STREQUAL ${XERCESC_STATIC})
SET(XERCESC_WAS_STATIC ${XERCESC_STATIC} CACHE INTERNAL "" )
FIND_PATH(XERCESC_INCLUDE NAMES xercesc/util/XercesVersion.hpp
PATHS
$ENV{XERCESC_INCLUDE_DIR}
${XERCESC_INCLUDE_DIR}
/usr/local/include
/usr/include
)
IF (XERCESC_STATIC)
FIND_LIBRARY(XERCESC_LIBRARY NAMES xerces-c_static_3 xerces-c-3.1 xerces-c
PATHS
$ENV{XERCESC_LIBRARY_DIR}
${XERCESC_LIBRARY_DIR}
/usr/lib64
/usr/local/lib
)
FIND_LIBRARY(XERCESC_LIBRARY_DEBUG NAMES xerces-c_static_3D xerces-c-3.1D
PATHS
$ENV{XERCESC_LIBRARY_DIR}
${XERCESC_LIBRARY_DIR}
/usr/lib64
/usr/local/lib
)
ADD_DEFINITIONS( -DXERCES_STATIC_LIBRARY )
ELSE (XERCESC_STATIC)
FIND_LIBRARY(XERCESC_LIBRARY NAMES xerces-c_3
PATHS
$ENV{XERCESC_LIBRARY_DIR}
${XERCESC_LIBRARY_DIR}
)
FIND_LIBRARY(XERCESC_LIBRARY_DEBUG NAMES xerces-c_3D
PATHS
$ENV{XERCESC_LIBRARY_DIR}
${XERCESC_LIBRARY_DIR}
)
ENDIF (XERCESC_STATIC)
IF (XERCESC_INCLUDE AND XERCESC_LIBRARY)
SET(XERCESC_FOUND TRUE)
ELSE (XERCESC_INCLUDE AND XERCESC_LIBRARY)
SET(XERCESC_FOUND FALSE)
ENDIF (XERCESC_INCLUDE AND XERCESC_LIBRARY)
IF(XERCESC_FOUND)
FIND_PATH(XERCESC_XVERHPPPATH NAMES XercesVersion.hpp PATHS
${XERCESC_INCLUDE}
PATH_SUFFIXES xercesc/util)
IF ( ${XERCESC_XVERHPPPATH} STREQUAL XERCESC_XVERHPPPATH-NOTFOUND )
SET(XERCES_VERSION "0")
ELSE( ${XERCESC_XVERHPPPATH} STREQUAL XERCESC_XVERHPPPATH-NOTFOUND )
FILE(READ ${XERCESC_XVERHPPPATH}/XercesVersion.hpp XVERHPP)
STRING(REGEX MATCHALL "\n *#define XERCES_VERSION_MAJOR +[0-9]+" XVERMAJ
${XVERHPP})
STRING(REGEX MATCH "\n *#define XERCES_VERSION_MINOR +[0-9]+" XVERMIN
${XVERHPP})
STRING(REGEX MATCH "\n *#define XERCES_VERSION_REVISION +[0-9]+" XVERREV
${XVERHPP})
STRING(REGEX REPLACE "\n *#define XERCES_VERSION_MAJOR +" ""
XVERMAJ ${XVERMAJ})
STRING(REGEX REPLACE "\n *#define XERCES_VERSION_MINOR +" ""
XVERMIN ${XVERMIN})
STRING(REGEX REPLACE "\n *#define XERCES_VERSION_REVISION +" ""
XVERREV ${XVERREV})
SET(XERCESC_VERSION ${XVERMAJ}.${XVERMIN}.${XVERREV})
ENDIF ( ${XERCESC_XVERHPPPATH} STREQUAL XERCESC_XVERHPPPATH-NOTFOUND )
IF(NOT XERCESC_FIND_QUIETLY)
MESSAGE(STATUS "Found Xerces-C: ${XERCESC_LIBRARY}")
MESSAGE(STATUS " : ${XERCESC_INCLUDE}")
MESSAGE(STATUS " Version: ${XERCESC_VERSION}")
ENDIF(NOT XERCESC_FIND_QUIETLY)
ELSE(XERCESC_FOUND)
MESSAGE(FATAL_ERROR "Could not find Xerces-C !")
ENDIF(XERCESC_FOUND)
MARK_AS_ADVANCED(XERCESC_INCLUDE XERCESC_LIBRARY)
Re: XERCES not found
Thanks for the feedback. And indeed, the support for E57 was only for Windows up to now.
Can you push your modifications on the github trunk?
Can you push your modifications on the github trunk?
Daniel, CloudCompare admin
Re: XERCES not found
Hello, Daniel,
Thanks for the effort, Linux users will try to "rememer" you we exist :-D
I will try. I'm not an github regular user.
Best regards.
Thanks for the effort, Linux users will try to "rememer" you we exist :-D
I will try. I'm not an github regular user.
Best regards.
Re: XERCES not found
XIOT (for X3D files support) requires Xerces as well.
However, Xiot is clearly not working very well. We are currently looking for a reliable (and GPL) way to load X3D files.
However, Xiot is clearly not working very well. We are currently looking for a reliable (and GPL) way to load X3D files.
Daniel, CloudCompare admin
Re: XERCES not found
Hi Daniel
My goal was to find a means to compare a PCL point cloud (PCD) of a person with an X3D model of a person (H-Anim) and scale them to match. I had intended to use libx3d (LGPL) and generate a PCD from the model. Your library seemed to fill the bill for me without having to create things (too much) from scratch.
I haven't coded for many years and learn best from examples. There are too few examples in libx3d for me to be of use. So, I have to revert to documentation.
Your library seemed to fill the bill because it had the CloudCompare, PCD input and X3D input. With your forum, I had hoped for a resource when I had issues. I can't seem to get it to recognize my installation of Xerces. Although I could still write my own libx3d interface, if I need Xerces, I can't use the CC library.
Ralph
My goal was to find a means to compare a PCL point cloud (PCD) of a person with an X3D model of a person (H-Anim) and scale them to match. I had intended to use libx3d (LGPL) and generate a PCD from the model. Your library seemed to fill the bill for me without having to create things (too much) from scratch.
I haven't coded for many years and learn best from examples. There are too few examples in libx3d for me to be of use. So, I have to revert to documentation.
Your library seemed to fill the bill because it had the CloudCompare, PCD input and X3D input. With your forum, I had hoped for a resource when I had issues. I can't seem to get it to recognize my installation of Xerces. Although I could still write my own libx3d interface, if I need Xerces, I can't use the CC library.
Ralph
Re: XERCES not found
I know this answer is a bit old, but is still valid? I'm trying to compile CloudCOmpare 2.6.1 on Debian and I'm having problems finding xerces. I've compiled the E57 library and put the path on the LIBE57_INSTALL_DIR and there is no problem. But also I've compiled xerces-c-3.1.2 and put its path in XERCES_ROOT, but I obtaindaniel wrote:Thanks for the feedback. And indeed, the support for E57 was only for Windows up to now.
Can you push your modifications on the github trunk?
Code: Select all
CMake Error at contrib/E57Support.cmake:36 (message):
Unable to find Xerces library. Please make XERCES_ROOT point to the root
of Xerces directory.
Call Stack (most recent call first):
contrib/AllSupport.cmake:8 (include)
CMakeLists.txt:68 (include)
Re: XERCES not found
In the CMake script/configuration of CloudCompare, you don't need to set the XERCES_ROOT variable but the ' Xerces_INCLUDE_DIR' and 'Xerces_LIBRARY_RELEASE' or 'Xerces_LIBRARY_DEBUG' instead (at least on Windows - and you may need to display the 'advanced' variables if you use CMake GUI).
I guess on Linux/gcc you can skip the debug library file.
Does it help?
I guess on Linux/gcc you can skip the debug library file.
Does it help?
Daniel, CloudCompare admin
Re: XERCES not found
Thank you for your answer. I'm using cmake-gui 3.2.2 in Debian Sid. When I try to configure CloudCompare I see only the XERCES_ROOT, but not Xerces_LIBRARY_RELEASE nor Xerces_LIBRARY_DEBUGdaniel wrote:In the CMake script/configuration of CloudCompare, you don't need to set the XERCES_ROOT variable but the ' Xerces_INCLUDE_DIR' and 'Xerces_LIBRARY_RELEASE' or 'Xerces_LIBRARY_DEBUG' instead (at least on Windows - and you may need to display the 'advanced' variables if you use CMake GUI).
I guess on Linux/gcc you can skip the debug library file.
Does it help?
Thanks