私の製品のcmakeベースのビルドシステムを構築しています。問題は、cmakeによって生成されたVisual Studioプロジェクトがソリューションブラウザーにヘッダーファイルを表示しないことです。
ヘッダーファイルを一覧表示するには、CMakeList.txtに何を追加する必要がありますか?推奨される解決策は、特定の各ヘッダーファイルをリストする必要がない場合です。
ソリューションこれが私が付属したソリューションです:
file(GLOB_RECURSE INCS "*.h")
add_library(myLib ${SRCS} ${INCS})
ありがとう
ソースファイルと共にヘッダーファイルを追加するだけです。
PROJECT (Test)
ADD_EXECUTABLE(Test test.cpp test.h)
または変数を使用する:
PROJECT (Test)
SET(SOURCE
test.cpp
)
SET(HEADERS
test.h
)
ADD_EXECUTABLE(Test ${SOURCE} ${HEADERS})
これに対する基本的なトリックは、ヘッダーファイルをいずれかのターゲット(実行可能ファイルまたはライブラリ)に追加することです。 cmakeはすでにすべてのヘッダーファイルの依存関係を知っており、これを処理する必要があるため、これは特に苛立たしいことです。 source_group コマンドを使用して、さらに整理できます。
source_group("My Headers" FILES ${MY_HDRS})
Xcodeでも同じことを行う必要があることに注意してください。
Qtプロジェクトのビルドシステムで作業しているときにも同じ問題があり、このページの他の投稿のおかげで、この解決策を思い付きました。私のメイクファイルから改作した完全な例を含めました。お役に立てれば!
cmake_minimum_required (VERSION 2.6)
project (DemoSolution)
find_package(Qt4 REQUIRED)
include(${QT_USE_FILE})
add_definitions(${QT_DEFINITIONS})
include_directories (../../include/)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
file(GLOB Demo_SOURCES *.cpp)
file(GLOB Demo_HEADERS *.hpp)
file(GLOB Demo_FORMS *.ui)
file(GLOB Demo_RESOURCES resources.qrc)
qt4_wrap_cpp(Demo_MOC ${Demo_HEADERS})
qt4_wrap_ui(Demo_FORMS_HEADERS ${Demo_FORMS})
qt4_add_resources(Demo_RESOURCES_RCC ${Demo_RESOURCES})
source_group("Headers" FILES ${Demo_HEADERS})
source_group("MOC" FILES ${Demo_MOC})
set(QT_USE_QTNETWORK, true)
set(QT_USE_QTSQL, true)
set(QT_USE_QTXML, true)
add_library(Demo SHARED
${Demo_SOURCES}
${Demo_HEADERS}
${Demo_MOC}
${Demo_FORMS_HEADERS}
${Demo_RESOURCES_RCC}
)
target_link_libraries(Demo ${QT_LIBRARIES})
add_definitions(-D_DEMO_EXPORTS)