filipdutescu / modern-cpp-template

A template for modern C++ projects using CMake, Clang-Format, CI, unit testing and more, with support for downstream inclusion.
The Unlicense
1.69k stars 214 forks source link

Not printing the header files with BUILD_HEADERS_ONLY [BUG] #39

Open mk-95 opened 2 years ago

mk-95 commented 2 years ago

Describe the bug when using the BUILD_HEADERS_ONLY option, cmake fails

To Reproduce Steps to reproduce the behavior:

  1. Open './cmake/StandardSettings.cmake'
  2. Go to option 'option(${PROJECT_NAME}_BUILD_HEADERS_ONLY "Build the project as a header-only library." ON)'
  3. Modify OFF --> ON
  4. MAKE SURE TO DEFINE THE add FUNCTION IN ./include/project/temp.hpp
  5. Generate cmake to get the following:

    
    -- Found the following headers:
    CMake Error at CMakeLists.txt:89 (foreach):
    Unknown argument:
    
    LIST

-- * CMake Error at CMakeLists.txt:91 (endforeach): endforeach An ENDFOREACH command was found outside of a proper FOREACH ENDFOREACH structure. Or its arguments did not match the opening FOREACH command.


**Expected behavior**
Generation should work without any error.

**Screenshots**
![image](https://user-images.githubusercontent.com/18662314/162604646-c6d1c968-25fd-49a4-8eb4-8d6295d85a86.png)

**Desktop:**

* OS: MacOS Monterey
* Version 12.1 (21C52)

**Suggested Fix**
In `./CMakeLists.txt` line 89 Add `S` to `LIST`

change `foreach(header IN LIST headers)` to `foreach(header IN LISTS headers)`
filipdutescu commented 2 years ago

Hello, thanks for submitting this issue! I am not sure why this is happening as it should not have any problems with header only projects. Just to confirm, you added the .hpp file to the list of headers and sources used by CMake, right?

mk-95 commented 2 years ago

Yes, I have added the .hpp file to the list of headers and sources in the CMake directory.