Week 7 Class 20 Fri Oct 09 Posted: Oct 09

Class session:

  1. Announcement:

    We have three screencasts today, all devoted to CMake. Since they ran for almost 50 minutes, there is no exercise to enter the examples.

    However, there is Project 1, where much of this is useful.

  2. Screencast: CMake Multiple Executable Targets
  3. Screencast: CMake Source Directories

    There are only two hard things in Computer Science: cache invalidation and naming things. - Phil Karlton

    I struggle with good naming and directory structure. For srcML, I considered:

     src
     ├── client
     └── libsrcml
     test
     ├── client
     └── libsrcml
         (a)
    
     client
     ├── src
     └── test
     libsrcml
     ├── src
     └── test
         (b)
    
     client
     └── test
     libsrcml
     └── test
    
    
         (c)
    

    Choice (a) separates src and test first, (b) separates by application first, and (c) the source files are not in a subdirectory, but the tests are.

    We went with (a) as it fits the build files better (more on that later).

    I would have named the client the client’s name, srcml, but thought that may be confusing as it is the name of the entire thing.

    Another decision: test or tests?

  4. Screencast: CMake Install
  5. Exercise 47: CMake Targets, Directories, and Install Crossword

Screencast Folder: Class 20 Fri Oct 09

Exercise Due Date: 4 pm on Sunday, Oct 11

Reminders: