Re: [CMake] Creating RPMs from failing projects with CPack

2016-01-21 Thread Attila Krasznahorkay
Hi Domen,

Thanks a lot for the tip! I'll give it a try. (The "monolithic limitation" 
should not be an issue for us. We do build single RPMs for our projects.)

Cheers,
Attila

> On 21 Jan 2016, at 00:49, Domen Vrankar  wrote:
> 
>> I have a slightly unusual question (I guess). Is it possible somehow to 
>> force CPack to produce RPM files from projects that have build problems?
>> 
>> We use CMake in our nightly build system to test the latest changes in our 
>> software. When a build problem occurs we don't want the whole build to fail. 
>> To this end, we run the build with:
>> 
>> make -k
>> make -k install/fast
>> 
>> This second target executes the installation no matter what. (We set all our 
>> build results as "optional installations".) So that at least the "successful 
>> part" of the build would become visible on a shared filesystem.
>> 
>> Now, I'd like to do something similar with CPack. To make it behave like 
>> "install/fast" does. All in all, I'd like to tell it to use this 
>> "install/fast" target while creating the package instead of the "install" 
>> target. Is there any way of making this happen?
> 
> I don't know of any clean way to do this but you could write an
> install script (let's name it install_k.sh):
> 
> #!/bin/bash
> make -k install/fast
> exit 0
> 
> Then your would add two CPACK variables to your CMakeLists.txt:
> 
> #set(CPACK_RPM_COMPONENT_INSTALL "ON") <- I'll explain this commented line 
> later
> set(CPACK_INSTALL_CMAKE_PROJECTS "")
> set(CPACK_INSTALL_COMMANDS "${CMAKE_CURRENT_SOURCE_DIR}/install_k.sh")
> 
> And instead of packaging with "make package" command execute "cpack -G RPM".
> 
> However there is an additional problem that this hack only works for
> monolithic packages (that's why I commented out
> CPACK_RPM_COMPONENT_INSTALL in example above) so you will have to
> disable component packages generation if you are using it.
> 
> Regards,
> Domen
> 
> 2016-01-20 11:26 GMT+01:00 Attila Krasznahorkay
> :
>> Dear All,
>> 
>> I have a slightly unusual question (I guess). Is it possible somehow to 
>> force CPack to produce RPM files from projects that have build problems?
>> 
>> We use CMake in our nightly build system to test the latest changes in our 
>> software. When a build problem occurs we don't want the whole build to fail. 
>> To this end, we run the build with:
>> 
>> make -k
>> make -k install/fast
>> 
>> This second target executes the installation no matter what. (We set all our 
>> build results as "optional installations".) So that at least the "successful 
>> part" of the build would become visible on a shared filesystem.
>> 
>> Now, I'd like to do something similar with CPack. To make it behave like 
>> "install/fast" does. All in all, I'd like to tell it to use this 
>> "install/fast" target while creating the package instead of the "install" 
>> target. Is there any way of making this happen?
>> 
>> Cheers,
>>  Attila
>> --
>> 
>> Powered by www.kitware.com
>> 
>> Please keep messages on-topic and check the CMake FAQ at: 
>> http://www.cmake.org/Wiki/CMake_FAQ
>> 
>> Kitware offers various services to support the CMake community. For more 
>> information on each offering, please visit:
>> 
>> CMake Support: http://cmake.org/cmake/help/support.html
>> CMake Consulting: http://cmake.org/cmake/help/consulting.html
>> CMake Training Courses: http://cmake.org/cmake/help/training.html
>> 
>> Visit other Kitware open-source projects at 
>> http://www.kitware.com/opensource/opensource.html
>> 
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/cmake

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake


Re: [CMake] Creating RPMs from failing projects with CPack

2016-01-20 Thread Domen Vrankar
> I have a slightly unusual question (I guess). Is it possible somehow to force 
> CPack to produce RPM files from projects that have build problems?
>
> We use CMake in our nightly build system to test the latest changes in our 
> software. When a build problem occurs we don't want the whole build to fail. 
> To this end, we run the build with:
>
> make -k
> make -k install/fast
>
> This second target executes the installation no matter what. (We set all our 
> build results as "optional installations".) So that at least the "successful 
> part" of the build would become visible on a shared filesystem.
>
> Now, I'd like to do something similar with CPack. To make it behave like 
> "install/fast" does. All in all, I'd like to tell it to use this 
> "install/fast" target while creating the package instead of the "install" 
> target. Is there any way of making this happen?

I don't know of any clean way to do this but you could write an
install script (let's name it install_k.sh):

#!/bin/bash
make -k install/fast
exit 0

Then your would add two CPACK variables to your CMakeLists.txt:

#set(CPACK_RPM_COMPONENT_INSTALL "ON") <- I'll explain this commented line later
set(CPACK_INSTALL_CMAKE_PROJECTS "")
set(CPACK_INSTALL_COMMANDS "${CMAKE_CURRENT_SOURCE_DIR}/install_k.sh")

And instead of packaging with "make package" command execute "cpack -G RPM".

However there is an additional problem that this hack only works for
monolithic packages (that's why I commented out
CPACK_RPM_COMPONENT_INSTALL in example above) so you will have to
disable component packages generation if you are using it.

Regards,
Domen

2016-01-20 11:26 GMT+01:00 Attila Krasznahorkay
:
> Dear All,
>
> I have a slightly unusual question (I guess). Is it possible somehow to force 
> CPack to produce RPM files from projects that have build problems?
>
> We use CMake in our nightly build system to test the latest changes in our 
> software. When a build problem occurs we don't want the whole build to fail. 
> To this end, we run the build with:
>
> make -k
> make -k install/fast
>
> This second target executes the installation no matter what. (We set all our 
> build results as "optional installations".) So that at least the "successful 
> part" of the build would become visible on a shared filesystem.
>
> Now, I'd like to do something similar with CPack. To make it behave like 
> "install/fast" does. All in all, I'd like to tell it to use this 
> "install/fast" target while creating the package instead of the "install" 
> target. Is there any way of making this happen?
>
> Cheers,
>   Attila
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at: 
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more 
> information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at 
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/cmake
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake