qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (QPID-6611) [C++ Windows] Create all binary executables in build/src folder
Date Wed, 01 Jul 2015 21:18:05 GMT

    [ https://issues.apache.org/jira/browse/QPID-6611?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14611016#comment-14611016

ASF subversion and git services commented on QPID-6611:

Commit 1688738 from chug@apache.org in branch 'qpid/trunk'
[ https://svn.apache.org/r1688738 ]

QPID-6611: Getting Visual Studio executables to run from where they are built.
Leaving cmake as-is, this patch adds current VS build folder to the PATH. 
It further adds an arg to make-install.bat to select a build configuration:

> [C++ Windows] Create all binary executables in build/src folder
> ---------------------------------------------------------------
>                 Key: QPID-6611
>                 URL: https://issues.apache.org/jira/browse/QPID-6611
>             Project: Qpid
>          Issue Type: New Feature
>          Components: C++ Broker, C++ Client
>    Affects Versions: 0.32
>         Environment: Windows and Visual Studio; C++ builds
>            Reporter: Chuck Rolke
>         Attachments: qpid-exe-in-build_src.patch
> My windows build produces 38 executables. Only one of them, qpidd.exe, actually runs
in the folder in which it is produced. This means the other 37 just don't work.
> {noformat}
>  $ cd build\src\tests\Debug
>  $ hello_world.exe
>  The program can't start because qpidmessagingd.dll is missing from
>   your computer. Try reinstalling the program to fix this problem.
> {noformat}
> I'm including a patch to some cmake scripts that force all of the executables to be in
the same folders that hold the qpid*.dll libraries. Then all of the executables work with
minimal external diddling. Further, from within Visual Studio all executables, think HelloWorld,
can be selected as as the 'Startup Project' and run directly.
> One can currently go into the shared installation /bin folder and run a fair number programs
from there. All of the qpid/proton/boost libraries are in that folder and things 'just work'.
What one cannot do is run 'hello_world' from within Visual Studio. So if you have a problem
or a test case to try then you are stuck with no debugger. For hello_world to work under the
debugger go into the project properties and point the $OutDir macro at <build>/src/Debug
where all of the qpid dll files are and recompile. Now hello_world runs as expected in VS.
> So here's how working with this patch should play out.
> # Get a nice checkout and apply the patch.
> # Run cmake. Assume: mkdir build; cd build; cmake ../cpp
> # Do a build. For this example use the Debug configuration. At this point the qpid dll
files are in build\src\Debug and so are all 38 .exe example and test programs.
> # Manually install some libraries. 
> #* copy ..\..\..\install_dir\bin\qpid-proton*.dll build\src\Debug. This step is not necessary
if you have no proton. 
> #* You can also copy boost libraries or have boost in your path for native C++. For the
.NET binding you must copy the boost libraries to build\src\Debug of the application will
not start.
> Now CD into build\bin\Debug and *all* of the programs run. I can 'dir *.exe' and see
the choices and try them. I can't remember the last time I ran print_events on Windows before
> I tried this patch on a Linux system. All of the executables are now in build/src as
expected. Everything works: self test, qpidd, examples, tests. I will not suggest forcing
this patch on the source tree in general as it will surely break scripts that have hard coded
paths to executables and will break if the targets move around.
> If I'm missing some magic that solves these issues some other way I'd love to hear about

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org

View raw message