[CMake] How to add non-source files to a Visual Studio project?

Andrew Fenn andrewfenn at gmail.com
Fri Oct 17 04:47:43 EDT 2008


Put this in your cmakelists.txt


SET(Required_Packages

   lib1

   lib2
)

FOREACH(Package ${Required_Packages})

  FIND_PACKAGE(${Package} REQUIRED)

  IF (${Package}_FOUND)

      INCLUDE_DIRECTORIES(${${Package}_INCLUDE_DIR})

      IF (${Package}_LIBRARIES)

         TARGET_LINK_LIBRARIES(hardwar ${${Package}_LIBRARIES})

      ELSE (${Package}_LIBRARIES)

         LINK_DIRECTORIES(${${Package}_LIBRARY_DIRS})

      ENDIF (${Package}_LIBRARIES)

  ELSE (${Package}_FOUND)

      MESSAGE(STATUS "${Package} not found")

  ENDIF(${Package}_FOUND)

ENDFOREACH(Package)



Put below into a file called Findlib1.cmake and make another for lib2

SET( lib1_DEFINITIONS "")



##

# You're going to have to edit this file if you intend to use it for
your own project

##

SET( lib1_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib1 )



IF( EXISTS ${lib1_INCLUDE_DIR} )

    SET( lib1_FOUND TRUE )

    FILE(GLOB lib1_source ${lib1_INCLUDE_DIR}/*.cpp)

    ADD_LIBRARY(lib1 ${lib1_source})

    SET( lib1_LIBRARIES lib1)

ENDIF( EXISTS ${lib1_INCLUDE_DIR} )



IF( NOT lib1_FOUND)

    IF( NOT lib1_INCLUDE_DIR )

        IF (lib1_FIND_REQUIRED)

	    	MESSAGE(FATAL_ERROR "Could not find lib1")

    	ENDIF (lib1_FIND_REQUIRED)

    ENDIF( NOT lib1_INCLUDE_DIR )

ELSE ( NOT lib1_FOUND)

    INCLUDE_DIRECTORIES("${lib1_INCLUDE_DIR}")

ENDIF( NOT lib1_FOUND)





# Finally, display informations if not in quiet mode

IF( NOT lib1_FIND_QUIETLY )

  MESSAGE( STATUS "lib1 found " )

  MESSAGE( STATUS " libraries : ${lib1_LIBRARIES}" )

  MESSAGE( STATUS " includes : ${lib1_INCLUDE_DIR}" )

ENDIF( NOT lib1_FIND_QUIETLY )



MARK_AS_ADVANCED(

  lib1_INCLUDE_DIR

  lib1_LIBRARIES

)


On Fri, Oct 17, 2008 at 3:08 PM, Eric Noulard <eric.noulard at gmail.com> wrote:
> Hi All,
>
> I have a project which has a structure similar to:
>
> project/src/lib1
>          /src/lib2
>          /src/app1
>          /src/app2
>          /initFiles
>
> each subdir has its own CMakeLists.txt
>
> the content of project/initFiles are files which are CONFIGUREd
> (with CONFIGURE_FILE) and INSTALLed.
>
> I want to make those files appear in the Visual Studio project tree.
> I tried
>
> SET_SOURCE_FILES_PROPERTIES(anInitFile.txt PROPERTIES HEADER_FILE_ONLY TRUE)
>
> but with no success, do I miss something?
>
> Those files dot not appear in any ADD_LIBRARY or ADD_EXECUTABLE arguments.
>
> --
> Erk
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
>


More information about the CMake mailing list