View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0015648CMakeModulespublic2015-07-13 04:382016-01-04 11:51
ReporterMartin Baute 
Assigned ToRoger Leigh 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
PlatformOSWindowsOS Version
Product VersionCMake 3.2.3 
Target VersionCMake 3.4Fixed in VersionCMake 3.4 
Summary0015648: FindXercesC.cmake does not work on Windows
DescriptionThe FindXercesC module shipping with CMake is rather simple. It looks for the Xerces-C library using this line:

find_library( XercesC_LIBRARY "xerces-c" DOC "Xerces-C++ libraries" )

This does not work on Windows -- here, the Xerces-C library is named xerces-c_3.lib (or ...-c_3D.lib for the debug build), making FindXercesC.cmake fail with "XercesC_LIBRARY-NOTFOUND".

Suggested fix would be using this line:

find_library( XercesC_LIBRARY NAMES xerces-c xerces-c_3 xerces-c_2 DOC "Xerces-C++ libraries" )
TagsNo tags attached.
Attached Files

 Relationships

  Notes
(0039125)
Roger Leigh (developer)
2015-07-13 05:09

Hi,

Note that I opened a PR to add xerces-c_3 last week; now merged to master.

I can also add xerces_c2 if that would be useful. Is this still actively used; is it not obsolete?


Regards,
Roger
(0039126)
Martin Baute (reporter)
2015-07-13 06:21

I added xerces-c_2 just for completeness; who knows what kind of software still hasn't migrated to the new API. Version 2.8.0 is still offered for download from the archive site; I've verified its XercesVersion.hpp file to work with the version-retrieving RegEx in FindXercesC.cmake, so adding that one lib name should not hurt either way since stating minimum version with find_package( XercesC ) would still work.

Good to hear this hadn't espaced attention, keep on the excellent work!
(0039127)
Roger Leigh (developer)
2015-07-13 07:01

Should be fixed in: https://github.com/Kitware/CMake/pull/166 [^]
(0039128)
Roger Leigh (developer)
2015-07-13 07:06

I could also make it search for the debug libraries as well if that would be useful. However I'm not sure how well they will work--the upstream build files links against the release version of ICU, so they might be broken in practice.
(0039129)
Martin Baute (reporter)
2015-07-13 07:46

I found the debug library issue to be rather fickle on Windows in any case -- Boost and ICU is another such murky corner -- and have basically given up on trying to compile debug code on Windows altogehter.
(0039131)
Brad King (manager)
2015-07-13 09:11

I've merged the patch from 0015648:0039127:

 FindXercesC: Also search for xerces-c_2
 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=38ddabb1 [^]
(0040092)
Robert Maynard (manager)
2016-01-04 11:51

Closing resolved issues that have not been updated in more than 4 months.

 Issue History
Date Modified Username Field Change
2015-07-13 04:38 Martin Baute New Issue
2015-07-13 05:09 Roger Leigh Note Added: 0039125
2015-07-13 06:21 Martin Baute Note Added: 0039126
2015-07-13 07:01 Roger Leigh Note Added: 0039127
2015-07-13 07:06 Roger Leigh Note Added: 0039128
2015-07-13 07:46 Martin Baute Note Added: 0039129
2015-07-13 09:08 Brad King Assigned To => Roger Leigh
2015-07-13 09:08 Brad King Status new => assigned
2015-07-13 09:11 Brad King Note Added: 0039131
2015-07-13 09:11 Brad King Status assigned => resolved
2015-07-13 09:11 Brad King Resolution open => fixed
2015-07-13 09:11 Brad King Fixed in Version => CMake 3.4
2015-07-13 09:11 Brad King Target Version => CMake 3.4
2016-01-04 11:51 Robert Maynard Note Added: 0040092
2016-01-04 11:51 Robert Maynard Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team