[CMake] CMake and Visual Studio

Michael Jackson mike.jackson at bluequartz.net
Sat May 9 20:40:34 EDT 2009


take a look at the following location:

<http://www.bluequartz.net/cgi-bin/gitweb/gitweb.cgi?p=MXADataModel.git;a=tree 
 >

My project is laid out in the following way:

Project
    Resources
       CMake
    Source
      MXA
        Common

So Basically all my cmake type of support files go in Project/ 
Resources/CMake and all the source code is in "Source". All the code  
is organized by folder structures. Inside each folder there is a  
"*.cmake" file that lists the source codes (source and headers) for  
that folder. In the top level cmake file I optionally include each of  
those *.cmake files to build up a source list. Inside the *.cmake file  
I call a macro which uses the "Source_group" command to help VS  
replicate the folder structure. This also works for Xcode also BTW.  
This particular project only builds 1 library and a bunch of unit test  
executables plus one small utility.
   If you look elsewhere in the git repository there is another  
project called "MXATools" which is a collection of Qt based programs  
and command line programs. They are laid out the same way as the first  
project.

  MXADataModel (the first project) is dependent on Boost and you can  
see the basic code that is used to find boost (built into CMake 2.6.3  
and greater). As far as external libraries I ended up writing my own  
"Find*.cmake' files since I was writing CMake build scripts for those  
libraries any ways (Tif, Expat and HDF5).

  Take a look at the code and ask questions if you need. You are  
welcome to any of the CMake code for your own use. I also welcome  
feedback on the code from a "new users" perspective. ;-)

_________________________________________________________
Mike Jackson                  mike.jackson at bluequartz.net
BlueQuartz Software                    www.bluequartz.net
Principal Software Engineer                  Dayton, Ohio



On May 9, 2009, at 3:00 PM, Brandon Olivares wrote:

> Hi,
>
> I'm trying to use Cmake for a cross-platform application. I'm trying  
> to
> configure it for Visual Studio on Windows, since that's what I use to
> develop in.
>
> Is there a better way of adding files, though? I can't really add  
> files from
> within Visual Studio, it appears, because it'd go in the build  
> directory.
>
> Also, is there any better way to actually replicate the folder  
> structure of
> the source code?
>
> I might just move to using vim because using Visual Studio is quite  
> a pain
> at this point, but in case someone else wants to build it or  
> contribute to
> the code, developing in Visual Studio, I'd like to make it as easy as
> possible.
>
> I'm just starting out with this, but here's my current  
> CMakeLists.txt in the
> src directory.
>
> set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
> set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
>
> set(FC_SRCS main.cpp)
>
> include_directories(${PROJECT_SOURCE_DIR}/include)
>
> if(MSVC_IDE)
>  file(GLOB_RECURSE FC_HEADERS ${PROJECT_SOURCE_DIR}/include/*.hpp)
>  source_group("Header Files" FILES ${FC_HEADERS})
>  list(APPEND FC_SRCS ${FC_HEADERS})
> endif()
>
> add_executable(fight-controller ${FC_SRCS})
>
> include(CPack)
>
> Thanks,
> Brandon
>
> -- 
> www.perpetualseeker.com
> Blog about college, programming, and other random things.
> Follow me on Twitter: http://twitter.com/devbanana
>
>
> _______________________________________________
> 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



More information about the CMake mailing list