私は(もう一度)AppleプラットフォームでgccとQtと組み合わせてプリコンパイル済みヘッダーを作成するのに苦労しています。
プリコンパイル済みヘッダーを作成するときは、コードセクション(古き良き「PCHSupport_26.cmake」に基づく)を使用して、次のようにコンパイルフラグを抽出します。
STRING(TOUPPER "CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}" _flags_var_name)
SET(_args ${CMAKE_CXX_FLAGS} ${${_flags_var_name}})
GET_DIRECTORY_PROPERTY(DIRINC INCLUDE_DIRECTORIES )
FOREACH(_item ${DIRINC})
LIST(APPEND _args "-I${_item}")
ENDFOREACH(_item)
GET_DIRECTORY_PROPERTY(_defines_global COMPILE_DEFINITIONS)
LIST(APPEND defines ${_defines_global})
STRING(TOUPPER "COMPILE_DEFINITIONS_${CMAKE_BUILD_TYPE}" _defines_for_build_name) GET_DIRECTORY_PROPERTY(defines_build ${_defines_for_build_name})
LIST(APPEND _defines ${_defines_build})
FOREACH(_item ${_defines})
LIST(APPEND _args "-D${_item}")
ENDFOREACH(_item ${_defines})
LIST(APPEND _args -c ${CMAKE_CURRENT_SOURCE_DIR}/${PRECOMPILED_HEADER} -o ${_gch_filename})
SEPARATE_ARGUMENTS(_args)
残念ながら、上記のコンパイラフラグは、組み込みのコンパイラルールを使用するときにCMakeが生成する2つの重要なパラメータを見逃します。
-DQT_DEBUG
生成されたプリコンパイル済みヘッダーを使用してコンパイルすると、次のようなエラーが発生します。file.h:QT_DEBUG
が定義されているため使用されません。
私は次のことであなたの助けが必要です:
- コンパイラフラグを取得する上記の方法は正しいですか?
- これを行うためのより良い、より簡単な、より簡単な方法はありますか?
- または
-DQT_DEBUG
に表示されないのはなぜですかCOMPILE_DEFINITIONS
COMPILE_DEFINITIONS_${CMAKE_BUILD_TYPE}