The following issue has been SUBMITTED. ====================================================================== http://www.cmake.org/Bug/view.php?id=13644 ====================================================================== Reported By: Reid Kleckner Assigned To: ====================================================================== Project: CMake Issue ID: 13644 Category: CMake Reproducibility: always Severity: minor Priority: normal Status: new ====================================================================== Date Submitted: 2012-11-02 10:49 EDT Last Modified: 2012-11-02 10:49 EDT ====================================================================== Summary: Default pdb output location changed in cmake 2.8.10 Description: In the course of adding PDB_OUTPUT_DIRECTORY and related properties and variables, the default location for pdb files changed.
In our project (DynamoRIO) we have a bunch of targets where we set RUNTIME_OUTPUT_DIRECTORY, LIBRARY_OUTPUT_DIRECTORY, etc. The .pdb file would get created in ${RUNTIME_OUTPUT_DIRECTORY} next to the .dll, which is what we want. After this change, it would get created in the default output directory, which is different. Furthermore, this would mean the pdbs never got installed. Our CMake code: set_target_properties(dynamorio PROPERTIES LIBRARY_OUTPUT_DIRECTORY${location_suffix} "${DR_LIBRARY_OUTPUT_DIRECTORY}" RUNTIME_OUTPUT_DIRECTORY${location_suffix} "${DR_LIBRARY_OUTPUT_DIRECTORY}" ARCHIVE_OUTPUT_DIRECTORY${location_suffix} "${DR_LIBRARY_OUTPUT_DIRECTORY}" # The next line is the one I added to work around the problem. #PDB_OUTPUT_DIRECTORY${location_suffix} "${DR_LIBRARY_OUTPUT_DIRECTORY}" ) >From the linker command line: /out:lib32\debug\dynamorio.dll /implib:lib32\debug\dynamorio.lib /pdb:core\dynamorio.pdb We can easily work around the problem by setting PDB_OUTPUT_DIRECTORY as well as RUNTIME, ARCHIVE, and LIBRARY, but it'd be nice for other users that aren't using cmake from version control if the default didn't change. Upstream issue where we figured this out: http://code.google.com/p/chromium/issues/detail?id=159092 Original issue: http://www.cmake.org/Bug/view.php?id=10830 CMake commit that made the change: http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3f60dbf1 Steps to Reproduce: 1. Create a library target 2. Set the runtime and archive output directory to somewhere non-default 3. Build it 4. Observe that the pdb does not reside next to the dll ====================================================================== Issue History Date Modified Username Field Change ====================================================================== 2012-11-02 10:49 Reid Kleckner New Issue ====================================================================== -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers