[CMake] multiple source directories
Andreas Pakulat
apaku at gmx.de
Wed Sep 28 07:45:04 EDT 2011
On 28.09.11 12:51:53, pellegrini wrote:
> Hi all,
>
> I have a project with the following structure:
>
> root/
> CMakeLists.txt
> prog1/
> CMakeLists.txt
> Src/
> file1.f90
> prog2/
> CMakeLists.txt
> Src/
> file2.f90
>
> where prog1, prog2 are individual projects.
>
> I would like to add file1.90 to the build process of prog2. To do
> so, in the CMakeLists.txt file of prog2 project, I put:
>
> set(SOURCES ../../prog1/Src/file1.f90
> Src/file2.f90)
> and further
> add_executable(prog2 ${SOURCES})
>
> when compiling with CMake I get the following error:
>
> ##############################################
> CMake Error at CMakeLists.txt:35 (add_executable):
> Cannot find source file:
>
> ../../prog1/Src/file1.f90
>
> Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm
> .hpp .hxx .in .txx
> ###############################################
>
> It seems that CMake cna not deal with relative path when declaring
> the sources for a project.
Relative paths work just fine, but your expecting a different base-path
than cmake is. In the above example the current directory when
assembling the sources is root/prog2 not root/prog2/Src which you seem
to assume. Hence you have one ".." too much in your set-line. This
should work:
set( SOURCES ../prog1/Src/file1.f90 Src/file2.f90 )
Andreas
More information about the CMake
mailing list