Build Files

Michael L. Collard, Ph.D.

Department of Computer Science, The University of Akron

Build languages are declarative

Abstraction levels get higher over time

  • set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
  • set(CMAKE_CXX_STANDARD 17)
  • target_compile_features(${TARGET_NAME} PRIVATE cxx_std_17)

There is always more to learn

  • The target, install, has a variation, install/strip
  • make install
  • make install/strip
  • CMAKE_STRIP
  • Example: Download and install external source

Multiple structural design decisions to make

  • Tree structure that follows source structure
  • E.g., test structure

Always have to experiment

  • Things don't always work the same on all platforms