[CMake] Copying some files using CMake

2010-12-23 Thread Stormwind Dev

Dear List,

I've got a question on copying some files from one directory to another 
using CMake.


Let's say, I got some libraries collected in a special directory. I want 
CMake to copy these libs to the distribution directory of my project. 
Using add_custom_command, I managed to have CMake copy my .exe to the 
distribution directory, but when I try to do this for my libraries 
something goes terribly wrong.


add_custom_command( TARGET MagicRPG POST_BUILD
COMMAND copy \$(TargetPath)\ .\\dist\\bin )

is what I did to copy my exe. When I use this

add_custom_command( TARGET MagicRPG POST_BUILD
COMMAND copy \$(TargetPath)\ 
\${SDKS_BASE_DIR}/SDL/lib/SDL.dll\ .\\dist\\bin)


to get SDL.dll copied to dist/bin Visual Studio fails with message

Fehler1error MSB3073: Der Befehl copy 
D:\Projekte\cpp\games\Magic\bin\Debug\MagicRPG.exe 
D:/SDKs/SDL/lib/SDL.dll .\dist\bin

if errorlevel 1 goto VCReportError
:VCEnd wurde mit dem Code 1 beendet.C:\Program Files 
(x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets113
6MagicRPG


Can anybody please help me with the right syntax for copying multiple 
files at POST_BUILD?


Best

Michael

___
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


Re: [CMake] Copying some files using CMake

2010-12-23 Thread Stormwind Dev
Thanks for your reply John. There is one question left about your 
GetRuntime module. The files you copy are located within the CMake 
directory in your root source dir, right?


Best Michael
Am 23.12.2010 17:28, schrieb John Drescher:

On Thu, Dec 23, 2010 at 11:18 AM, Stormwind Dev
stormwind@googlemail.com  wrote:

Dear List,

I've got a question on copying some files from one directory to another
using CMake.

Let's say, I got some libraries collected in a special directory. I want
CMake to copy these libs to the distribution directory of my project. Using
add_custom_command, I managed to have CMake copy my .exe to the distribution
directory, but when I try to do this for my libraries something goes
terribly wrong.

add_custom_command( TARGET MagicRPG POST_BUILD
COMMAND copy \$(TargetPath)\ .\\dist\\bin )

is what I did to copy my exe. When I use this

add_custom_command( TARGET MagicRPG POST_BUILD
COMMAND copy \$(TargetPath)\ \${SDKS_BASE_DIR}/SDL/lib/SDL.dll\
.\\dist\\bin)

to get SDL.dll copied to dist/bin Visual Studio fails with message

Fehler1error MSB3073: Der Befehl copy
D:\Projekte\cpp\games\Magic\bin\Debug\MagicRPG.exe
D:/SDKs/SDL/lib/SDL.dll .\dist\bin
if errorlevel 1 goto VCReportError
:VCEnd wurde mit dem Code 1 beendet.C:\Program Files
(x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets1136
  MagicRPG

Can anybody please help me with the right syntax for copying multiple files
at POST_BUILD?


Attached are 3 CMake modules I use for this. One is a macro that
builds a batch file that ends up being a target in visual studio.

I put them in a CMake folder inside my root source folder and have the
following line in my main CMakeLists.txt

include(${PROJECT_SOURCE_DIR}/CMake/GetRuntime.cmake)

this brings in the macro with support for generating the batch file
and GetRuntime target.

Then later in the main CMakeLists.txt file I use the other two modules.

FIND_PACKAGE( Qt4 REQUIRED )
set(QT_USE_QTNETWORK true)
set(QT_USE_QTSQL true)
set(QT_USE_QTXML true)
INCLUDE( ${QT_USE_FILE} )
include(${PROJECT_SOURCE_DIR}/CMake/GetQtRuntime.cmake)

IF(USE_QWT)
FIND_PACKAGE(Qwt REQUIRED)
INCLUDE_DIRECTORIES(${QWT_INCLUDE_DIR})
include(${PROJECT_SOURCE_DIR}/CMake/GetQwtRuntime.cmake)
set (UPMC_EXTERNAL_LIBS ${UPMC_EXTERNAL_LIBS} ${QWT_LIBRARIES})
ENDIF(USE_QWT)

John


___
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