Lines Matching +full:flang +full:- +full:build

2 set(LLVM_SUBPROJECT_TITLE "Flang")
12 # Flang requires C++17.
18 # To match with the flang guidelines we currently disable
20 message(FATAL_ERROR "Flang does not currently support building with \
22 flang.")
28 message(FATAL_ERROR "In-source builds are not allowed. \
35 option(FLANG_ENABLE_WERROR "Fail and stop building flang if a warning is triggered." OFF)
42 "Specifies the target library used for implementing IEEE-754 128-bit float \
48 # Check for a standalone build and configure as appropriate from
51 message("Building Flang as a standalone project.")
52 project(Flang)
61 # MSVC + clang-cl build requires clang_rt.builtin.${target} library
71 message(FATAL_ERROR "Flang cannot be built with clang and the MSVC 17.12 "
79 message(FATAL_ERROR "flang isn't supported on 32 bit CPUs")
99 # We need a pre-built/installed version of LLVM.
158 find_program(MLIR_TABLEGEN_EXE "mlir-tblgen" ${LLVM_TOOLS_BINARY_DIR}
170 # ignored while keeping -Wunused-parameter a fatal error inside f18 code base.
171 # This may have to be fine-tuned if flang headers are consider part of this
172 # LLVM_INCLUDE_DIRS when merging in the monorepo (Warning from flang headers
178 # We look for it here and remove it from Flang's compile flags to
179 # avoid some mixed compilation flangs (e.g. -std=c++11 ... -std=c++17).
183 message("Flang: Overriding LLVM's 'cxx_std' setting...")
184 message(" removing '-std=${LLVM_CXX_STD}'")
186 string(REPLACE " -std=${LLVM_CXX_STD}" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
199 set(LLVM_EXTERNAL_LIT "${LLVM_TOOLS_BINARY_DIR}/llvm-lit" CACHE STRING "Command used to spawn lit")
202 "Generate build targets for the Flang unit tests."
207 #Handle unittests when out-of-tree
213 add_subdirectory(${UNITTEST_DIR} third-party/unittest)
218 "Unit-tests will be skipped as LLVM install does not include google-test related headers and libraries.")
223 add_custom_target(check-all DEPENDS check-flang FlangUnitTests)
225 add_custom_target(check-all DEPENDS check-flang )
233 "Generate build targets for the Flang unit tests."
238 set(FLANG_BINARY_DIR ${CMAKE_BINARY_DIR}/tools/flang)
243 set(MLIR_MAIN_SRC_DIR ${LLVM_MAIN_SRC_DIR}/../mlir ) # --src-root
244 set(MLIR_INCLUDE_DIR ${MLIR_MAIN_SRC_DIR}/include ) # --includedir
254 set(FLANG_INTRINSIC_MODULES_DIR ${CMAKE_BINARY_DIR}/include/flang)
275 # Always build tco tool
282 # Add Flang-centric modules to cmake path.
291 "The <path> to use for the system root for all compiler invocations (--sysroot=<path>).")
295 set(ENABLE_LINKER_BUILD_ID OFF CACHE BOOL "pass --build-id to ld")
305 message(WARNING "Resetting Flang's default runtime library to use platform default.")
332 message(STATUS "Flang version: ${FLANG_VERSION}")
333 # Flang executable version information
336 "Major version number to appended to the flang executable name.")
344 "Vendor-specific Flang version information.")
345 set(FLANG_VENDOR_UTI "org.llvm.flang" CACHE STRING
346 "Vendor-specific uti.")
349 add_definitions(-DFLANG_VENDOR="${FLANG_VENDOR} ")
353 "Vendor-specific text for showing the repository the source is taken from.")
355 add_definitions(-DFLANG_REPOSITORY_STRING="${FLANG_REPOSITORY_STRING}")
372 # Configure Flang's Version.inc file.
374 ${CMAKE_CURRENT_SOURCE_DIR}/include/flang/Version.inc.in
375 ${CMAKE_CURRENT_BINARY_DIR}/include/flang/Version.inc)
376 # Configure Flang's version info header file.
378 ${FLANG_SOURCE_DIR}/include/flang/Config/config.h.cmake
379 ${FLANG_BINARY_DIR}/include/flang/Config/config.h)
383 # Keep this up-to-date with that file
388 append("-Werror" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
389 append("-Wno-error" CMAKE_REQUIRED_FLAGS)
399 check_compiler_flag("-Werror -Wno-deprecated-copy" CXX_SUPPORTS_NO_DEPRECATED_COPY_FLAG)
401 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-copy")
403 check_compiler_flag("-Wstring-conversion" CXX_SUPPORTS_NO_STRING_CONVERSION_FLAG)
405 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-string-conversion")
407 check_compiler_flag("-Wno-ctad-maybe-unsupported" CXX_SUPPORTS_NO_CTAD_MAYBE_UNSUPPORTED_FLAG)
409 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-ctad-maybe-unsupported")
416 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-strict-aliasing -fno-semantic-interposition")
418 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-command-line-argument -Wstring-conversion \
419 -Wcovered-switch-default")
422 check_cxx_compiler_flag("-Werror -Wnested-anon-types" CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG)
424 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-nested-anon-types")
427 # Add to build type flags.
428 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUGF18")
429 set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -DCHECK=\"(void)\"")
434 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -fno-semantic-interposition")
439 # Clang on Darwin enables non-POSIX extensions by default, which allows the
441 # conflicting with Flang's HUGE symbols.
444 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_POSIX_C_SOURCE=200809")
454 COMMAND sh -c "${CMAKE_LINKER} -v 2>&1 | head -1"
458 if ("${LD_V_OUTPUT}" MATCHES ".*ld64-([0-9.]+).*")
459 string(REGEX REPLACE ".*ld64-([0-9.]+).*" "\\1" HOST_LINK_VERSION ${LD_V_OUTPUT})
460 elseif ("${LD_V_OUTPUT}" MATCHES "[^0-9]*([0-9.]+).*")
461 string(REGEX REPLACE "[^0-9]*([0-9.]+).*" "\\1" HOST_LINK_VERSION ${LD_V_OUTPUT})
485 "Build the Flang tools. If OFF, just generate build targets." ON)
503 option(FLANG_INCLUDE_DOCS "Generate build targets for the Flang docs."
509 # Custom target to install Flang libraries.
510 add_custom_target(flang-libraries)
511 set_target_properties(flang-libraries PROPERTIES FOLDER "Flang/Meta")
514 add_llvm_install_targets(install-flang-libraries
515 DEPENDS flang-libraries
516 COMPONENT flang-libraries)
523 add_dependencies(flang-libraries ${lib})
525 add_dependencies(install-flang-libraries install-${lib})
531 add_llvm_install_targets(install-flang-headers
532 COMPONENT flang-headers)
534 install(DIRECTORY include/flang
536 COMPONENT flang-headers
546 install(DIRECTORY ${FLANG_INCLUDE_DIR}/flang
548 COMPONENT flang-headers
554 # Put ISO_Fortran_binding.h into the include files of the build area now
559 ${FLANG_SOURCE_DIR}/include/flang/ISO_Fortran_binding.h
565 FILES include/flang/ISO_Fortran_binding.h