View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0011896 | CMake | CMake | public | 2011-02-24 15:26 | 2011-04-14 14:39 | ||||
Reporter | Shash Chatterjee | ||||||||
Assigned To | Bill Hoffman | ||||||||
Priority | normal | Severity | major | Reproducibility | always | ||||
Status | closed | Resolution | fixed | ||||||
Platform | x86 | OS | Microsoft Windows | OS Version | XP Professional | ||||
Product Version | CMake 2.8.4 | ||||||||
Target Version | CMake 2.8.5 | Fixed in Version | CMake 2.8.5 | ||||||
Summary | 0011896: ".obj" or ".o" listed in ADD_LIBRARY does not get included in Visual Studio project, NMake build works | ||||||||
Description | When adding an object-file (pre-compiled, available only in binary form from 3rd-party) to a library, the object file does not get included in the library when built under Visual Studio (tried Visual Studio 10/2010 and 8/2005). When using NMake, for both VS-10 and VS-8, the object is included correctly. If the project file for the library is updated manually, by selecting the project properties, and then adding the .o/.obj as an "Additional Dependencies" for the Librarian properties, then the build works. | ||||||||
Steps To Reproduce | An example source tree and 2 build directories are attached. | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | cmaketest.tgz [^] (28,000 bytes) 2011-03-30 10:02 cmake-42c5a04-ExternalObj.zip [^] (2,539 bytes) 2011-04-01 10:02 | ||||||||
Relationships | ||||||
|
Relationships |
Notes | |
(0025965) Bill Hoffman (manager) 2011-03-30 09:45 edited on: 2011-03-30 09:45 |
This should work. We even have a test that does this... ExternalOBJ It has been passing for some time on the dashboard with all vs ide builds, including VS 10: http://www.cdash.org/CDash/testDetails.php?test=89793743&build=926273 [^] I don't see your attachment. |
(0025967) Shash Chatterjee (reporter) 2011-03-30 10:04 edited on: 2011-03-30 10:16 |
Hi Bill, The attachment likely failed because it was too big, or maybe 'cause I somehow goofed. Anyway, I have deleted the build-dir contents, remade a small compressed-tar and reattached it. I wasn't using ExternalOBJ, will give it a try in the next day or two. Thanks for the info. EDIT: Oh, I thought ExterrnalOBJ was a CMake command, you meant it as the name of a particular test. Please let me know if my attached example fails for you as well. |
(0025969) Shash Chatterjee (reporter) 2011-03-30 10:28 |
I looked at the ExternalOBJ test. If I understand it correctly, what it does is not the problem mentioned in this bug-report. What ExternalOBJ does is to compile sources from an external directory, then does a ADD_EXECUTABLE with a source in the current directory and including objects in a different directory. The problem in this bug-report has to do with including external objects in a library, then (eventually) linking to the library to build an executable. |
(0025970) Bill Hoffman (manager) 2011-03-30 10:36 |
The test use cmake to create a .o file. This a separate run of CMake. It then uses that .o or .obj as input to an executable. I guess the big difference is you are putting the .o in a library... Maybe that is the bug.. |
(0026003) Chris Scharver (reporter) 2011-03-31 21:16 |
I think the difference in behavior with the test is due to the fact that the test uses an object that is generated, thus the object is considered part of the compilation process somehow. I managed to break the test by using ${EXTERNAL_OBJECT} instead of ${CUSTOM_OBJECT}. Perhaps the test should create two executables, each linking with a different object variable. |
(0026015) Bill Hoffman (manager) 2011-04-01 10:51 |
OK, I will update the test to create two executables one that uses the custom command generated obj and one that does not. Really strange why that works.... It could be used as a work around if folks are interested. All you need to do is copy the .o file with a custom command and it will work.. |
(0026016) Chris Scharver (reporter) 2011-04-01 10:58 |
I attached a modified version of the test. One executable works and one doesn't. |
(0026087) Bill Hoffman (manager) 2011-04-04 17:28 |
I fixed this and checked it into git next. The fix should be in the next release of CMake. Please try the next nightly cmake to verify that it works for you. |
Notes |
Issue History | |||
Date Modified | Username | Field | Change |
2011-02-24 15:26 | Shash Chatterjee | New Issue | |
2011-03-30 09:45 | Bill Hoffman | Note Added: 0025965 | |
2011-03-30 09:45 | Bill Hoffman | Note Edited: 0025965 | |
2011-03-30 10:02 | Shash Chatterjee | File Added: cmaketest.tgz | |
2011-03-30 10:04 | Shash Chatterjee | Note Added: 0025967 | |
2011-03-30 10:16 | Shash Chatterjee | Note Edited: 0025967 | |
2011-03-30 10:28 | Shash Chatterjee | Note Added: 0025969 | |
2011-03-30 10:36 | Bill Hoffman | Note Added: 0025970 | |
2011-03-31 18:06 | Bill Hoffman | Relationship added | has duplicate 0011891 |
2011-03-31 21:16 | Chris Scharver | Note Added: 0026003 | |
2011-04-01 10:02 | Chris Scharver | File Added: cmake-42c5a04-ExternalObj.zip | |
2011-04-01 10:51 | Bill Hoffman | Note Added: 0026015 | |
2011-04-01 10:52 | Bill Hoffman | Assigned To | => Bill Hoffman |
2011-04-01 10:52 | Bill Hoffman | Status | new => assigned |
2011-04-01 10:59 | Chris Scharver | Note Added: 0026016 | |
2011-04-04 17:28 | Bill Hoffman | Note Added: 0026087 | |
2011-04-04 17:28 | Bill Hoffman | Status | assigned => closed |
2011-04-04 17:28 | Bill Hoffman | Resolution | open => fixed |
2011-04-14 14:39 | David Cole | Fixed in Version | => CMake 2.8.5 |
2011-04-14 14:39 | David Cole | Target Version | => CMake 2.8.5 |
Issue History |
Copyright © 2000 - 2018 MantisBT Team |