I hope I might find some help here. I recently started working on the PkModeling extension an I am trying to get it to build on various continuous integration platforms (Appveyor for Win and Travis CI for Linux and Mac).
https://github.com/michaelschwier/PkModeling/tree/CI
I got the build working on Appveyor but it copies some of the generated files to the wrong output. So the expected output would be “[pkmodeling-build]/bin/Release” (expected files there are: PkModeling.exe, PkModelingLib.dll, PkModelingTest.exe, PkSolver.lib, PkModeling.xml). This works fine when I also build all the dependencies (ITK, DCMTK, ZLIB). However, to avoid building these dependencies on the CI platform I download them pre-built and then tell cmake to use those instead of building them again:
cmake -G "Visual Studio 12 2013 Win64" -DITK_DIR:PATH=C:\ITK-install\lib\cmake\ITK-4.10 -DSlicerExecutionModel_DIR:PATH=C:\SlicerExecutionModel\SlicerExecutionModel-build -DDCMTK_DIR:PATH=C:\DCMTK-install\cmake -DZLIB_ROOT:PATH=c:\zlib-install -DZLIB_INCLUDE_DIR:PATH=c:\zlib-install\include -DZLIB_LIBRARY:FILEPATH=c:\zlib-install\lib\zlib.lib c:\pkmodeling
And now suddenly the files “PkModeling.exe” and “PkModelingLib.dll” are going to “[pkmodeling-build]/CLI/bin/Release” and the XML is going nowhere The output directories are defined around line 120 in the main CMakeLists.txt. But I think the SEMMacroBuildCLI from Slicer Execution Model is also setting output dirs. However I can’t seem to figure out why the little difference in calling cmake causes this behavior.
I fixed this with a hack in the appveyor.yml by copying the files via cmd, so that the test can run. But this does not seem like the right way