[flang-commits] [flang] [Flang] Multi-config CMake output paths in standalone builds (PR #208690)
Michael Kruse via flang-commits
flang-commits at lists.llvm.org
Fri Jul 10 03:47:51 PDT 2026
https://github.com/Meinersbur created https://github.com/llvm/llvm-project/pull/208690
When using a multi-config generator with CMake (such as "Ninja Multi-Config" or any Visual Studio generator), the output path must be specific to each config by having it include `${CMAKE_CFG_INTDIR}`. `CMAKE_CFG_INTDIR` will just be `.` in single-config generators. Use the same path as used by LLVM: https://github.com/llvm/llvm-project/blob/cd662a7c4fb03a88d0e429a7fc8d8b470a812e2b/llvm/CMakeLists.txt#L562-L563
`LLVM_LIBDIR_SUFFIX` was seemingly forgotten in one of the paths.
This is not complete support (neither has LLVM). More paths would need to be config-specific. In particular, `check-flang` does not work, but at least one can build the executables.
>From ec23013ccdaf5698391996182a43f2b66c7b071e Mon Sep 17 00:00:00 2001
From: Michael Kruse <llvm-project at meinersbur.de>
Date: Fri, 10 Jul 2026 12:34:41 +0200
Subject: [PATCH] Multi-config generators
---
flang/CMakeLists.txt | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/flang/CMakeLists.txt b/flang/CMakeLists.txt
index 42a7031c37fe9..84b4786314579 100644
--- a/flang/CMakeLists.txt
+++ b/flang/CMakeLists.txt
@@ -210,11 +210,11 @@ if (FLANG_STANDALONE_BUILD)
link_directories("${LLVM_LIBRARY_DIR}")
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY
- ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX})
+ ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY
- ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX})
+ ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
set(LLVM_EXTERNAL_LIT "${LLVM_TOOLS_BINARY_DIR}/llvm-lit" CACHE STRING "Command used to spawn lit")
set(LIT_ARGS_DEFAULT "-sv")
@@ -295,8 +295,8 @@ include_directories(SYSTEM ${CLANG_INCLUDE_DIR})
# tco tool and FIR lib output directories
if(FLANG_STANDALONE_BUILD)
- set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/bin)
- set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/lib)
+ set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
+ set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
endif()
# Always build tco tool
set(LLVM_BUILD_TOOLS ON)
More information about the flang-commits
mailing list