Ответ 1
Нормальным способом, вероятно, будет создание библиотеки из всех источников, кроме main.cpp и testing.cpp, а затем привязать ее к каждому исполняемому файлу. Однако, я думаю, вы имеете в виду, что не можете этого сделать, когда говорите, что не можете создавать подмодули.
Вместо этого вы можете использовать list(REMOVE_ITEM ...)
:
file(GLOB sources "*.cpp")
file(GLOB headers "*.h")
set(testing_sources ${sources})
list(REMOVE_ITEM testing_sources ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp)
list(REMOVE_ITEM sources ${CMAKE_CURRENT_SOURCE_DIR}/testing.cpp)
add_executable(main ${sources} ${headers})
add_executable(testing ${testing_sources} ${headers})