[CMake] restricting Qt include and library linking to 1 library/project

Hicham Mouline hicham at mouline.org
Thu Dec 31 08:45:17 EST 2009


Hello,

My toplevel CMakeLists.txt looks like:

----------------------------------------------------------------------------
--------
PROJECT(...)

CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

# Openmp
FIND_PACKAGE(OpenMP)
IF(OPENMP_FOUND)
  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
ENDIF()

# Boost
FIND_PACKAGE(Boost)
IF(Boost_FOUND)
    INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
ENDIF()

# Qt
FIND_PACKAGE(Qt4 4.6.0 COMPONENTS QtCore QtGui QtOpenGL REQUIRED)
INCLUDE(${QT_USE_FILE})

INCLUDE_DIRECTORIES(AFTER ${CMAKE_CURRENT_SOURCE_DIR})

ADD_SUBDIRECTORY(common)
ADD_SUBDIRECTORY(lib1)
ADD_SUBDIRECTORY(lib2)
ADD_SUBDIRECTORY(lib3)
ADD_SUBDIRECTORY(main)
----------------------------------------------------------------------------
--------


Using QT_USE_FILE includes Qt headers for all of common, lib1, lib2, lib3.
How can I include and link Qt only for lib3?

Lib3's CMakeLists.txt looks like:

ADD_LIBRARY(lib3 STATIC #cpps hpps ipps)

ADD_DEPENDENCIES(lib3 common)

TARGET_LINK_LIBRARIES(lib3 ${QT_LIBRARIES})

Rds,



More information about the CMake mailing list