[CMake] Fwd: building libs and specifying addition folders
Dev Guy
devguy.ca at gmail.com
Thu Jan 19 02:15:07 EST 2012
On Thu, Jan 19, 2012 at 1:01 AM, John Drescher <drescherjm at gmail.com> wrote:
> ---------- Forwarded message ----------
> From: John Drescher <drescherjm at gmail.com>
> Date: Thu, Jan 19, 2012 at 1:00 AM
> Subject: Re: [CMake] building libs and specifying addition folders
> To: Dev Guy <devguy.ca at gmail.com>
>
>
> On Wed, Jan 18, 2012 at 10:57 PM, Dev Guy <devguy.ca at gmail.com> wrote:
>> Hi,
>>
>> I am relatively new to CMake and I've read the tutorial. However I
>> have a few questions.
>>
>> 1. How can I declare a CMakeLists file to create a project to build a
>> DLL or static lib ? I assume if I build a DLL on windows, it will
>> build as a shared lib on Linux
>
> put SHARED in the add_library statement
>
> For more info than that type the following from a command prompt or shell:
>
> cmake --help-command add_library
>
>>
>> 2. If my main source folder has 2 sub-folders, one that only includes
>> header files call is Include and another folder that contains source
>> files call it Utils. How do I add declare them to my CMakeLists files
>> so that both the header and addition source files are found and and
>> compiled in the main source folder to build the final binary.
>>
>
> add_subdirectory
>
> Again for help:
> cmake --help-command add_subdirectory
>
>
> John
>
>
> --
> John M. Drescher
> --
John thanks,
I was able to get a DLL built, now I have a program that want to link
against the lib and use the DLL.
What I've done is create a Lib folder under the source folder wanting
to use the lib, I copied over the lib find and header file. I added
the following to CMakeLists.txt
add_subdirectory(Lib)
target_link_libraries (SimpleTester UnitTest)
However I am seeing 2 errors:
Error 1, when I run CMake I see:
CMake Warning (dev) at CMakeLists.txt:6 (add_subdirectory):
The source directory
C:/dev/Project/UnitTestSample/Lib
does not contain a CMakeLists.txt file.
CMake does not support this case but it used to work accidentally and is
being allowed for compatibility.
Policy CMP0014 is not set: Input directories must have CMakeLists.txt. Run
"cmake --help-policy CMP0014" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
This warning is for project developers. Use -Wno-dev to suppress it.
-- Configuring done
-- Generating done
-- Build files have been written to: C:/dev/Project/UnitTestSample/build
======================
Error 2
When I build I get a link error, which I fix by copying over the lib
file into the build folder. How can I tell the linker from CMake where
to find the lib?
LINK : fatal error LNK1104: cannot open file 'UnitTest.lib'
LINK Pass 1 failed. with 2
NMAKE : fatal error U1077: '"C:\Program Files\CMake
2.8\bin\cmake.exe"' : return code '0xffffffff'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio
10.0\VC\BIN\nmake.exe"' : retu
rn code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio
10.0\VC\BIN\nmake.exe"' : retu
rn code '0x2'
Stop.
More information about the CMake
mailing list