[cmake-developers] [CMake 0012357]: ExternalProject.cmake ignores prefix when installing a CMake project.

Mantis Bug Tracker mantis at public.kitware.com
Sat Jul 23 16:04:10 EDT 2011


The following issue has been SUBMITTED. 
====================================================================== 
http://public.kitware.com/Bug/view.php?id=12357 
====================================================================== 
Reported By:                Michael Lowell Roberts
Assigned To:                
====================================================================== 
Project:                    CMake
Issue ID:                   12357
Category:                   CMake
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
====================================================================== 
Date Submitted:             2011-07-23 16:04 EDT
Last Modified:              2011-07-23 16:04 EDT
====================================================================== 
Summary:                    ExternalProject.cmake ignores prefix when installing
a CMake project.
Description: 
If used on a CMake project, ExternalProject.cmake installs the external project
into ${CMAKE_INSTALL_PREFIX}, not the default location specified by
ExternalProject.cmake, nor any paths specified with the PREFIX or INSTALL_DIR
keywords.

Steps to Reproduce: 
I've attached a copy of my project that can be used to reproduce the issue. This
only reproduces the problem on Windows. In Linux, ExternalProject invokes
automake to compile the external project (trio) instead of CMake.

1. Unpack the attached archive onto a Windows system.
2. Configure the project. I use Visual Studio 10 Express.
3. CMake will inform you that trio could not be found. Set the TRIO_DOWNLOAD
cache variable to YES and reconfigure to address this.
4. Perform the generate step.
5. Build the project. You'll encounter the following messages:
  
    -- Install configuration: "Debug"
  
    -- Up-to-date: C:/Program Files/trio/include/trio.h
  
    -- Up-to-date: C:/Program Files/trio/include/triop.h
  
    -- Up-to-date: C:/Program Files/trio/include/triodef.h
  
    -- Up-to-date: C:/Program Files/trio/include/trionan.h
  
    -- Up-to-date: C:/Program Files/trio/include/triostr.h
  
    -- Installing: C:/Program Files/trio/lib/trio.lib

...

C:\Documents and Settings\...\fmrl-ramalloc-991e072\src\test\shared\test.c(39):
fatal error C1083: Cannot open include file: 'trio.h': No such file or directory

This is because trio has been installed into "C:/Program Files/trio" instead of
${CMAKE_CURRENT_BINARY_DIR}/trio-prefix, where it is expected to be installed.



Additional Information: 
The script that calls ExternalProject_Add() can be found in "cmake/trio.cmake".

I've included a patch to ExternalProject.cmake in the source archive that
appears to fix the problem. This patch is located at
"cmake/trio/cmake-fix-external-install.diff". 

Due to the difference in how I use ExternalProject.cmake on different platforms,
however, I'm unable to confirm that patch this fixes the issue on non-Windows
platforms.

====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2011-07-23 16:04 Michael Lowell RobertsNew Issue                                
   
2011-07-23 16:04 Michael Lowell RobertsFile Added:
fmrl-ramalloc-release-0-105-g991e072.zip                    
======================================================================




More information about the cmake-developers mailing list