[flang-dev] Unknown CMake command "add_flang_library" error

Peter Steinfeld via flang-dev flang-dev at lists.llvm.org
Sat Dec 25 21:04:35 PST 2021

I think that the immediate problem is that step 5) for the out-of-tree build should end in ".." rather than "../lib".


From: a sk <sacodework at gmail.com>
Sent: Thursday, December 23, 2021 9:14 AM
To: Peter Steinfeld <psteinfeld at nvidia.com>
Cc: flang-dev on LLVM <flang-dev at lists.llvm.org>
Subject: Re: [flang-dev] Unknown CMake command "add_flang_library" error

External email: Use caution opening links or attachments

Thanks Peter.

I would like to share how I am building flang using README.md document given in llvm-project/flang.

Before building flang in debug mode, I had built clang, mlir , llvm in release mode by using README.md documentation given in llvm-project.
The steps I have used to build clang,mlir,llvm in release mode are given below:
1)  git clone https://github.com/llvm/llvm-project.git
2) cd llvm-project
3) mkdir build
4) cd build
5) cmake ../llvm -G Ninja -DLLVM_ENABLE_PROJECTS="clang;mlir" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/llvm-project/build
6) ninja

It is working and after completion of build process of clang and mlir, I started out of tree debug build process for flang.

for this build process I followed the README.md document in flang github repository.
Steps are:
1) cd llvm-project
2) cd flang
3) mkdir build
4) cd build
5) cmake -DLLVM_DIR=/home/llvm-project/build/lib/cmake/llvm -DCLANG_DIR=/home/llvm-project/build/lib/cmake/clang -DMLIR_DIR=/home/llvm-project/build/lib/cmake/mlir ../lib

after running cmake , There is a error related to add_flang_library which was shared in previous email.

  CMake Error at Common/CMakeLists.txt:2 (add_flang_library):
    Unknown CMake command "add_flang_library".

I followed the steps according to README.md document.
Please guide according to the information given in github repo.

Is there any issue with the steps which I have used from github repo?

Thanks and Regards

On Wed, 22 Dec 2021 at 03:14, Peter Steinfeld <psteinfeld at nvidia.com<mailto:psteinfeld at nvidia.com>> wrote:
I'm not sure what's causing your specific error message, but I notice that you're not doing an out-of-tree build the same way that I do.  After doing the full, in-tree build, I also create an install area using the command "make install" (actually, for me, "ninja install") to create the mlir and clang libraries and include files on which the out-of-tree build depends.  I first "cd" to the build directory that contains the full, in-tree build, and then execute "make install".  This creates and populates a directory called "install" parallel to the directory called "build".

Wackily, in order to pick up the Google test related files, the out-of-tree build depends on the build area for the llvm files.

After creating the build and install areas for my full, in-tree build (called "base" below), I create a source directory that contains all of the flang (and llvm, clang, and mlir) source.  I then "cd" to the directory above the "flang" directory and execute a script that looks like the commands below.  Note that the directories for mlir and clang come from the install area and the directories from llvm come from the build area.


checkStatus() {
  if [ $? -ne 0 ]
    echo Exit $wd with error $?: $1
    exit 127


rm -rf build
rm -rf install
mkdir -p build
checkStatus "mkdir -p build"


cd build

cmake \
  -G Ninja \
  ../llvm \
  -DLLVM_ENABLE_PROJECTS="clang;mlir;flang;compiler-rt" \

checkStatus "cmake"

checkStatus "ninja"

ninja install
checkStatus "ninja install"

From: flang-dev <flang-dev-bounces at lists.llvm.org<mailto:flang-dev-bounces at lists.llvm.org>> On Behalf Of a sk via flang-dev
Sent: Tuesday, December 21, 2021 9:07 AM
To: flang-dev at lists.llvm.org<mailto:flang-dev at lists.llvm.org>
Subject: [flang-dev] Unknown CMake command "add_flang_library" error

External email: Use caution opening links or attachments

Hi Community,

I am building Flang out of tree but getting error related to add_flang_library i.e.


Make Warning (dev) in CMakeLists.txt:

No project() command is present. The top-level CMakeLists.txt file must

contain a literal, direct call to the project() command. Add a line of

code such as


near the top of the file, but after cmake_minimum_required().

CMake is pretending there is a "project(Project)" command on the first


This warning is for project developers. Use -Wno-dev to suppress it.

CMake Error at Common/CMakeLists.txt:2 (add_flang_library):

Unknown CMake command "add_flang_library".

CMake Warning (dev) in CMakeLists.txt:

No cmake_minimum_required command is present. A line of code such as

cmake_minimum_required(VERSION 3.16)

should be added at the top of the file. The version specified may be lower

if you wish to support older CMake versions for this project. For more

information run "cmake --help-policy CMP0000".

This warning is for project developers. Use -Wno-dev to suppress it.

-- Configuring incomplete, errors occurred!


Command used for building Flang : cmake -DLLVM_DIR=llvm-project/build/lib/cmake/llvm -DCLANG_DIR=llvm-project/build/lib/cmake/clang -DMLIR_DIR=llvm-project/build/lib/cmake/mlir -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=llvm-project/flang/build ../lib

Clang, mlir and llvm were built in release mode before building Flang.

Please guide.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/flang-dev/attachments/20211226/15bc44f0/attachment-0001.html>

More information about the flang-dev mailing list