David, I'm getting some nice assistance on the cmake list about the Windows
build.  The person helping me also gave some nice feedback on how this is
set up (see the end of his email).  These look like useful suggestions.

Rick

---------- Forwarded message ----------
From: Nils Gladitz <[email protected]>
Date: Thu, May 1, 2014 at 10:27 AM
Subject: Re: [CMake] Building a Windows project in both 32- and 64-bit mode
using the nmake generator.
To: Rick McGuire <[email protected]>
Cc: "[email protected]" <[email protected]>


On 01.05.2014 15:54, Rick McGuire wrote:

>
> Is it possible to get cmake to check the actual compile/link commands when
> they are issued?  I'd love to compare the cmake versions to our existing
> build to see if things are ending up the same.
>

To a degree (response files on window limit the output in some cases); see
below.


 Creating a minimal self-contained test case would not be easy.  This is an
> open source project though, if you're willing to try checking it out.  The
> svn url is svn http://svn.code.sf.net/p/oorexx/code-0/main/trunk
>
>
I was able to build the project with these steps:
    - Open the "VS2013 x64 Cross Tools Command Prompt"
    - Add  target_link_libraries(rexxapi ws2_32) to the end of
CMakeLists.txt
    - Create a "build" directory in the source directory
    - Run "cmake -G NMake Makefiles .." from the build directory
    - Run nmake VERBOSE=1

The command for the link this generates on my system is:
C:\PROGRA~2\MICROS~2.0\VC\bin\X86_AM~1\link.exe /nologo
@CMakeFiles\rexxapi.dir\objects1.rsp /out:..\CMakeFiles\bin\rexxapi.dll
/implib:..\CMakeFiles\bin\rexxapi.lib /pdb:C:\Users\ngladitz\src\
main\CMakeFiles\bin\rexxapi.pdb /dll /version:0.0 /machine:x64 /debug
/INCREMENTAL ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib
shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib
/MANIFEST /MANIFESTFILE:..\CMakeFiles\bin\rexxapi.dll.intermediate.manifest
..\CMakeFiles\bin\rexxapi.dll.embed.manifest.res

The link is successful.

Some of the project's setup looks unorthodox.
Specifically:
    - outputting binaries in the sources directory rather than the build
directory (this might break parallel build directories or being able to
purge build directories since they would not contain all artifacts)
    - using a directory called CMakeFiles for the output (which in in
source-tree builds would belong to cmake and should not be used by the
project)
    - The two platform dependent add_library() calls could be merged into a
single call that uses a list variable for the platform specific sources.
The redundant listing looks error prone.

Nils
------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
Oorexx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to