Je suis (encore une fois) aux prises avec la création d'en-têtes précompilés en conjonction avec gcc et Qt sur la plate-forme Apple.CMake, Qt, gcc et les en-têtes précompilés
Lors de la création maintenant mon en-tête précompilé J'utilise une section de code (basé sur le bon vieux « PCHSupport_26.cmake ») pour extraire les Compile drapeaux comme suit:
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)
Malheureusement, les drapeaux du compilateur ci-dessus manquer deux paramètres importants que CMake génère lors de l'utilisation des règles du compilateur incorporé: -DQT_DEBUG
et lors de la compilation avec l'en-tête précompilé généré, j'obtiens les erreurs comme suit: file.h: non utilisé car QT_DEBUG
est défini.
je besoin de votre aide avec ce qui suit:
- est la manière ci-dessus pour récupérer les drapeaux du compilateur correct?
- Existe-t-il un moyen plus simple, plus simple et plus simple de faire cela?
- Pourquoi ne
-DQT_DEBUG
montre pas dansCOMPILE_DEFINITIONS
ouCOMPILE_DEFINITIONS_${CMAKE_BUILD_TYPE}
Merci pour l'astuce. Malheureusement, cela ne fonctionne que lors de la construction avec XCode mais pas lors de la génération d'un fichier make normal. – doberkofler