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