AWESOME!  That's completely right!!!  Thanks for the quick response,
this was really frustrating me!

So, file globs are evil?  Not to get off subject, but care to expand on
that a bit?

Thanks for the help, I really appreciate it!!

Aaron C. Meadows 
-----Original Message-----
From: Michael Wild [mailto:them...@gmail.com] 
Sent: Monday, May 17, 2010 10:30 AM
To: Tyler Roscoe
Cc: Meadows, Aaron C.; cmake@cmake.org
Subject: Re: [CMake] Binaries not ending up in the
RUNTIME_OUTPUT_DIRECTORY

Naaa, the variables are simply called CMAKE_RUNTIME_OUTPUT_DIRECTORY,
CMAKE_LIBRARY_OUTPUT_DIRECTORY and CMAKE_ARCHIVE_OUTPUT_DIRECTORY. Aaron
mixed them up with the respective target property names

A few other things:

- you can call INCLUDE_DIRECTORIES with more than one directory
- NEVER use FILE(GLOB ...), it is evil.


Michael

On 17. May, 2010, at 17:21 , Tyler Roscoe wrote:

> You probably need the Prefix Hack:
> http://www.itk.org/Bug/view.php?id=8243
> 
> tyler
> 
> On Mon, May 17, 2010 at 09:53:34AM -0500,
aaron.mead...@thomsonreuters.com wrote:
>> Hi All!
>> 
>> 
>> 
>> I'm trying to migrate an existing Visual Studio 8 2005 source tree to
>> CMake.  The only problem I'm having right now is getting the build
>> artifacts to end up in the directories I want them in.  I would like
>> everything to show up in the ${PROJECT_BINARY_DIR}/bin dir, but only
>> static libraries are showing up there.  In particular, I have noticed
>> this as I've been adding post build steps to call my unit tests.
I'll
>> include my root CMakeLists.txt and the UnitTest CMakeLists.txt.  If
>> anyone can spot the issue, I'd be grateful! (Any other suggestions
>> welcome as well!)
>> 
>> 
>> 
>> ( Note, the MESSAGE() calls show that the two variables are defined
>> correctly in both CMakeLists.txt files. )
>> 
>> 
>> 
>> Root CMakeLists.txt (./CmakeLists.txt)
>> 
>> cmake_minimum_required (VERSION 2.6)
>> 
>> 
>> 
>> set(CMAKE_USER_MAKE_RULES_OVERRIDE
>> 
>>   ${CMAKE_CURRENT_SOURCE_DIR}/c_flag_overrides.cmake)
>> 
>> set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX
>> 
>>   ${CMAKE_CURRENT_SOURCE_DIR}/cxx_flag_overrides.cmake)
>> 
>> 
>> 
>> project (VersionInfo CXX)
>> 
>> 
>> 
>> # Default Include Dir
>> 
>> include_directories("${PROJECT_SOURCE_DIR}")
>> 
>> include_directories("$ENV{RDFD3RDPARTYDIR}/include")
>> 
>> 
>> 
>> link_directories("$ENV{RDFD3RDPARTYDIR}/lib")
>> 
>> if(DEBUG)
>> 
>> link_directories("$ENV{RDFD3RDPARTYDIR}/lib/Debug")
>> 
>> else()
>> 
>> link_directories("$ENV{RDFD3RDPARTYDIR}/lib/Release")
>> 
>> endif()
>> 
>> 
>> 
>> # New style of output location... doesn't seem to be supported in my
>> version of CMake
>> 
>> SET( RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin )
>> 
>> SET( LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin )
>> 
>> SET( ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin )
>> 
>> 
>> 
>> # Old style of output location... still works
>> 
>> SET( RUNTIME_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin )
>> 
>> SET( LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin )
>> 
>> SET( ARCHIVE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin )
>> 
>> LINK_DIRECTORIES( ${LIBRARY_OUTPUT_DIRECTORY})
>> 
>> 
>> 
>> ENABLE_TESTING()
>> 
>> 
>> 
>> MESSAGE("Master: Runtime_output_path: ${RUNTIME_OUTPUT_PATH} ")
>> 
>> MESSAGE("Master: Runtime_output_directory:
${RUNTIME_OUTPUT_DIRECTORY}
>> ")
>> 
>> 
>> 
>> add_definitions(-D_SCL_SECURE_NO_WARNINGS)
>> 
>> 
>> 
>> # Library projects
>> 
>> add_subdirectory(Toolbox)
>> 
>> add_subdirectory(VersionSystem)
>> 
>> 
>> 
>> # Executables
>> 
>> add_subdirectory(VersionCompiler)
>> 
>> add_subdirectory(ReadVer)
>> 
>> 
>> 
>> # Test Projects
>> 
>> add_subdirectory(TestLib1)
>> 
>> add_subdirectory(TestLib2)
>> 
>> add_subdirectory(TestDLL)
>> 
>> add_subdirectory(TestEXE)
>> 
>> 
>> 
>> 
>> 
>> UnitTest CMakeLists.txt (./VersionSystem/UnitTests/CMakeLists.txt)
>> 
>> FILE( GLOB interfacefiles RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.h
*.hpp
>> )
>> 
>> FILE( GLOB srcfiles RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.h *.hpp
*.cpp
>> *.c )
>> 
>> 
>> 
>> SOURCE_GROUP( Interface FILES ${interfacefiles} )
>> 
>> SOURCE_GROUP( Source FILES ${srcfiles} )
>> 
>> 
>> 
>> ADD_EXECUTABLE( VersionSystem-UT ${srcfiles} )
>> 
>> TARGET_LINK_LIBRARIES( VersionSystem-UT VersionSystem )
>> 
>> 
>> 
>> MESSAGE("VersionSystem-UT: Runtime_output_path:
${RUNTIME_OUTPUT_PATH}
>> ")
>> 
>> MESSAGE("VersionSystem-UT: Runtime_output_directory:
>> ${RUNTIME_OUTPUT_DIRECTORY} ")
>> 
>> 
>> 
>> ADD_CUSTOM_COMMAND(TARGET VersionSystem-UT POST_BUILD COMMAND
>> VersionSystem-UT.exe WORKING_DIRECTORY ${RUNTIME_OUTPUT_DIRECTORY} )
>> 
>> #ADD_TEST( VersionSystem VersionSystem-UT )
>> 
>> 
>> 
>> Directory Structure and CMakeLists.txt locations:
>> 
>> ./CMakeLists.txt
>> 
>> ./ReadVer/CMakeLists.txt
>> 
>> ./ReadVer/UnitTests/CMakeLists.txt
>> 
>> ./TestDLL/CMakeLists.txt
>> 
>> ./TestDLL/UnitTests/CMakeLists.txt
>> 
>> ./TestEXE/CMakeLists.txt
>> 
>> ./TestEXE/UnitTests/CMakeLists.txt
>> 
>> ./TestLib1/CMakeLists.txt
>> 
>> ./TestLib1/UnitTests/CMakeLists.txt
>> 
>> ./TestLib2/CMakeLists.txt
>> 
>> ./TestLib2/UnitTests/CMakeLists.txt
>> 
>> ./Toolbox/CMakeLists.txt
>> 
>> ./Toolbox/UnitTests/CMakeLists.txt
>> 
>> ./VersionCompiler/CMakeLists.txt
>> 
>> ./VersionCompiler/UnitTests/CMakeLists.txt
>> 
>> ./VersionSystem/CMakeLists.txt
>> 
>> ./VersionSystem/UnitTests/CMakeLists.txt
>> 
>> 
>> 
>> Aaron Meadows
>> Software Engineer
>> 
>> Thomson Reuters
>> 
>> Phone: 314.468.3530
>> Mobile: 636.541.6139
>> aaron.mead...@thomsonreuters.com
>> thomsonreuters.com



This email was sent to you by Thomson Reuters, the global news and information 
company.
Any views expressed in this message are those of the individual sender, except 
where the sender specifically states them to be the views of Thomson Reuters.


_______________________________________________
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://www.cmake.org/mailman/listinfo/cmake

Reply via email to