<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>