-
Notifications
You must be signed in to change notification settings - Fork 70
Closed
Description
The CMake files in this project and its submodules are not up to scratch with modern CMake practices (as outlined here and here).
A to-do list of low-hanging fruit:
- Remove all use of global functions like
include_directoriesandlink_directories - Add
PUBLICandPRIVATEto target properties and linking (usingPRIVATEas default) - Remove use of source file globbing
- Look for and avoid direct modification of
CMAKE_CXX_FLAGS - Add aliases for Faasm/ Faabric libraries with
faasm::andfaabric:: - Remove spurious variables like
LIB_FILESandHEADERS, instead list things directly inadd_librarywhere possible - Make sure we install all dependencies under
CMAKE_INSTALL_PREFIX - Instead of
target_link_directoriesseparately infaabric_lib, add a link toCMAKE_INSTALL_PREFIX/include - Consider using a CMake linter like cmake-lint or polysquare-cmake-linter
The sgx directory is a law unto itself and can be excluded from this tidy-up for now.
Metadata
Metadata
Assignees
Labels
No labels