Я хотел бы написать МАКРОС, который проверяет флаги компоновщика и добавляет их к CMAKE_MODULE_LINKER_FLAGS
и CMAKE_SHARED_LINKER_FLAGS
, если они успешно могут связываться для этих двух целевых типов.
MACRO (MY_CHECK_MODULE_LINKER_FLAG flag)
STRING(REGEX REPLACE "[-,= +]" "_" result "HAVE_MODULE_${flag}")
SET(SAVE_CMAKE_REQUIRED_LINK_OPTIONS "${CMAKE_REQUIRED_LINK_OPTIONS}")
SET(CMAKE_REQUIRED_LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS} ${flag})
CHECK_CXX_SOURCE_COMPILES("int main(void) { return 0; }" ${result}
${fail_patterns})
SET(CMAKE_REQUIRED_LINK_OPTIONS "${SAVE_CMAKE_REQUIRED_LINK_OPTIONS}")
ENDMACRO()
Пока это проверяет флаг компоновщика в CHECK_CXX_SOURCE_COMPILES
, недостаточная проверка целевых типов MODULE / SHARED.
Является try_compile
для всего проекта, инкапсулирующего add_library
для MODULE / РАЗДЕЛИЛ путь до go?