As mentioned by Alexander, you can use file(GLOB_RECURSE myVar myRegex) to get all the files matching the myRegex into a myVar as a list. In order to exclude some you could play around with the myRegex, or you could filter the list with list(FILTER myVar <INCLUDE|EXCLUDE> REGEX <regular_expression>)
But note that adding another .cpp file to your project will not automatically be added to your target on rebuild. You will need to explicitly reconfigure your project for the changes to be made. Since CMake 3.12 there is also an option CONFIGURE_DEPENDS for file GLOBE and GLOBE_RECURSE, that will do the update on rebuild for you.
Here is the NOTE from CMake documentation:
Note We do not recommend using GLOB to collect a list of source files
  from your source tree. If no CMakeLists.txt file changes when a source
  is added or removed then the generated build system cannot know when
  to ask CMake to regenerate. The CONFIGURE_DEPENDS flag may not work
  reliably on all generators, or if a new generator is added in the
  future that cannot support it, projects using it will be stuck. Even
  if CONFIGURE_DEPENDS works reliably, there is still a cost to perform
  the check on every rebuild.