ExternalProject_add not buing launched

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

ExternalProject_add not buing launched

Michele Portolan
Hello,

I am trying to set my Cmake project to build the "xmlrpc-c" library,
which is built using autotools. I was somewhat able to set it up
following this example:
http://mirkokiefer.com/blog/2013/03/cmake-by-example/

My resulting CMakeList is the following:

ExternalProject_Add( project_xmlprc
   SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc-c"
   PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc-c"
   CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/xmlrpc-c/configure
--prefix=${CMAKE_CURRENT_BINARY_DIR}/xmlrpc-c/
   BUILD_COMMAND make
   INSTALL_COMMAND make install
   BUILD_IN_SOURCE 1
)

ExternalProject_Get_Property(project_xmlprc install_dir)


add_library(xmlprc SHARED IMPORTED)
set_property(TARGET xmlprc PROPERTY IMPORTED_LOCATION
${install_dir}/lib/libxmlrpc++.so)
set_property(TARGET xmlprc PROPERTY IMPORTED_LOCATION
${install_dir}/lib/libxmlrpc_packetsocket.so)
set_property(TARGET xmlprc PROPERTY IMPORTED_LOCATION
${install_dir}/lib/libxmlrpc_client.so)
set_property(TARGET xmlprc PROPERTY IMPORTED_LOCATION
${install_dir}/lib/libxmlrpc_client++.so)
set_property(TARGET xmlprc PROPERTY IMPORTED_LOCATION
${install_dir}/lib/libxmlrpc_server++.so)
set_property(TARGET xmlprc PROPERTY IMPORTED_LOCATION
${install_dir}/lib/libxmlrpc_server_abyss++.so)
set_property(TARGET xmlprc PROPERTY IMPORTED_LOCATION
${install_dir}/lib/libxmlrpc_util.so)
set_property(TARGET xmlprc PROPERTY IMPORTED_LOCATION
${install_dir}/lib/libxmlrpc_util++.so)
add_dependencies(xmlprc project_xmlprc)

It sort of works, meaning I can see the library being built in
${CMAKE_CURRENT_BINARY_DIR}/xmlrpc-c/.

My problem is that the build is launched only the first time! If I
delete the ${CMAKE_CURRENT_BINARY_DIR} and re-launch cmake, the
ExternalProjet is not rebuilt. To have a rebuild, I have to do this
strange workaround:

   - modify "BUILD_IN_SOURCE" to 0

  - run cmake+make. I get an error as xmlrpc only support in-source build

  - put "BUILD_IN_SOURCE"back to 1

  - run cmake+make. This time it works.


Looks like it is some issue in the source tree remaining dirty, but even
running a "make distclean" does not change anything, I need to do the
workaround.

Any idea of where the problem lies?

Thanks,


Michele



--

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