Re: [CMake] Fwd: building libs and specifying addition folders
On 01/19/2012 08:15 AM, Dev Guy wrote: On Thu, Jan 19, 2012 at 1:01 AM, John Drescher dresche...@gmail.com wrote: -- Forwarded message -- From: John Drescher dresche...@gmail.com Date: Thu, Jan 19, 2012 at 1:00 AM Subject: Re: [CMake] building libs and specifying addition folders To: Dev Guy devguy...@gmail.com On Wed, Jan 18, 2012 at 10:57 PM, Dev Guy devguy...@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 '0x' 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. Could you provide a small but self-sufficient exemplary project which demonstrates what you're doing and allows for further investigation? Regards, 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
[CMake] Fwd: building libs and specifying addition folders
-- Forwarded message -- From: John Drescher dresche...@gmail.com Date: Thu, Jan 19, 2012 at 1:00 AM Subject: Re: [CMake] building libs and specifying addition folders To: Dev Guy devguy...@gmail.com On Wed, Jan 18, 2012 at 10:57 PM, Dev Guy devguy...@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 -- 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] Fwd: building libs and specifying addition folders
On Thu, Jan 19, 2012 at 1:01 AM, John Drescher dresche...@gmail.com wrote: -- Forwarded message -- From: John Drescher dresche...@gmail.com Date: Thu, Jan 19, 2012 at 1:00 AM Subject: Re: [CMake] building libs and specifying addition folders To: Dev Guy devguy...@gmail.com On Wed, Jan 18, 2012 at 10:57 PM, Dev Guy devguy...@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 '0x' 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. -- 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