Skip to content

Fix dictionary compilation

Andre Sailer requested to merge fixDictionary into update_mac_ci

This removes the hack to compile the root dictionaries It also sets ninja -k0 to compile as much as possible, and maybe see more than one error, or exclude the cause of errors.

This MR addresses #179 (closed)

It is not the dictionary creation, it is the compilation of the dictionary, which is done by hand.

# WARNING This hack is necessary to prevent standard warnings and those in clang-tidy for use in the CI
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/AllpixObjectsDictionary.cxx.o COMMAND ${CMAKE_CXX_COMPILER} -fPIC -std=c++${CMAKE_CXX_STANDARD} -I${CMAKE_SOURCE_DIR}/src ${INCLUDE_DIR_ARGS} -o ${CMAKE_CURRENT_BINARY_DIR}/AllpixObjectsDictionary.cxx.o -c ${CMAKE_CURRENT_BINARY_DIR}/AllpixObjectsDictionary.cxx DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/AllpixObjectsDictionary.cxx)

Might be better to assign cxx flags to that source file to prevent the warnings. https://cmake.org/cmake/help/v3.3/prop_sf/COMPILE_FLAGS.html

  set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/AllpixObjectsDictionary.cxx
    PROPERTIES
    GENERATED TRUE
    COMPILE_FLAGS "-w" # or whatever ?
    )

And just use the .cxx file in the library. I am going to assume that somehow finds the include paths for <stdio.h> (run ninja -k0 ...)

Though, I haven't yet looked at which role clang-tidy plays for this file, why would one run anything on a generated file in the first place?

Merge request reports