Directories and subdirectories:
client [main]
 - CMakeLists.txt
 - admin
  - CMakeLists.txt
 - doc
  - CMakeLists.txt
  - dev
    - CMakeLists.txt
 - man
  - CMakeLists.txt
 - shell_integration
  - CMakeLists.txt
  - icons
    - CMakeLists.txt
  - nautilus
    - CMakeLists.txt
 - src
  - CMakeLists.txt
  - cmd
    - CMakeLists.txt
    - cmdcore
      - Source Files
    - nextcloudcmd
      - Source Files
  - csync
    - CMakeLists.txt
    - nextcloud_csync
      - Source Files
        - std
        - vio
      - <Other Locations>
  - gui
    - CMakeLists.txt
    - nextcloud
      - Source Files
    - nextcloudCore
      - Header Files
      - Source Files
      - tray
      - wizard
      - <Other Locations>
    - socketapi
      - CMakeLists.txt
  - libsync
    - CMakeLists.txt
    - nextcloudsync
      - Source Files
    - vfs
      - CMakeLists.txt
      - cfapi
      - suffix
      - xattr
 - CMake Modules

To properly add any ui, cpp, and header files into the project the CMakeLists.txt under src/gui has to include the new class names for the three files in a long list of all the class and file names.
The source files under src/gui include the ui files and cpp/header files all under nextcloudCore. The nextcloud subdirectory under src/gui include the main.cpp file.
the wizard directory is for any windows including anything server-based, this includes things like the main dialog.
To properly build the entire application make sure to choose the test that's named nextcloud, any other tests are isolated to specific functions or classes in the code.