<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p><font size="-1"><font face="Courier New, Courier, monospace">Hi
all,</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">I try
to do something special and I'm not sure if there a way to
handle the scenario with CMAKE correctly. <br>
</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">I
have a superbuild project with 4 library. each library have
there test suite. I have different unit test framework needed.
Here the the folder structure</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">TOP-Level</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">|-src</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">|-inc</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">|-tests</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">
|-CMakeList.txt</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">|-
Catch2 <--- test framework<br>
</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">|-External</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">
|-LibA</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">
|-inc</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">
|-src</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">
|-tests</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">
|-CmakeLists.txt</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">
|-CppUTest (version 3.7)</font></font><font size="-1"><font
face="Courier New, Courier, monospace"> <--- test framework</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">
|-CmakeLists.txt</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">
|-CmakeLists.txt</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">
|-LibB </font></font><br>
</p>
<p><font size="-1"><font face="Courier New, Courier, monospace">
|-inc</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">
|-src</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">
|-tests</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">
|-CmakeLists.txt</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">
|-CppUTest (version 3.8)</font></font><font size="-1"><font
face="Courier New, Courier, monospace"> <--- test framework</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">
|-CmakeLists.txt</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">
|-CmakeLists.txt</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace"><font
size="-1"><font face="Courier New, Courier, monospace">|-CmakeLists.txt</font></font></font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">I
would like to ba able to build all the tests suite for all the
library. The simple add_subdirectory doesn't owrk because of
multiple target definition for CppUTest. So the first try was
with the </font></font><font size="-1"><font face="Courier
New, Courier, monospace">ExternalProject </font></font><font
size="-1"><font face="Courier New, Courier, monospace">and
defining different "target" for cppUTest like <br>
</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">ExternalProject_Add
( cppUTest3.7</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">...)</font></font></p>
<p><br>
</p>
<p><font size="-1"><font face="Courier New, Courier, monospace">ExternalProject_Add
( cppUTest3.8</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">...)</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">This
is working but I cannot use find_package to find it. I think I
need to do something else to be able to use find_package on it.
<br>
</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">Here
the portion of The libA CMakeLists.txt</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">find_package(CppUTest
3.7)</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">if(NOT
CPPUTEST_FOUND)</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">ExternalProject_Add
( cppUTest3.7</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/CppUTest <br>
</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">...)</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">endif()<br>
</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">I have
the samething for libB but with 3.8 instead of 3.7</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace"><br>
</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">1-
Is it the only way to handle this scenario ?<br>
</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">2-
Is it possible to build all the test framework dependency
before building the real application (like at configure time)
to be able to use find_package(CppUTest 3.7) for example ?</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">3-
Is there a better approch to do it ?</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace"><br>
</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">I'm
relatively new to CMAKE, so maybe I miss something...</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">Regards</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace">Jonathan<br>
</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace"><br>
</font></font></p>
<font size="-1"><font face="Courier New, Courier, monospace"></font></font><br>
<p><font size="-1"><font face="Courier New, Courier, monospace"><br>
</font></font></p>
<p><font size="-1"><font face="Courier New, Courier, monospace"></font></font><br>
</p>
</body>
</html>