This is a case for using the ExternalProject module!

You have a top level 'SuperBuild' whose job it is to find all the
prerequisites for the actual project build.  Then it configures and builds
it.

This means that the tricky configuration is handled by CMake, instead of
working it out yourself by hand.

The Superbuild can be part of the project's source tree. The simplest
method is to make a SuperBuild subdirectory, and put in a CMakeLists.txt
something like this:

project(MySuperBuild)
include(ExternalProject)
# find all the prerequisite tools
ExternalProject_Add(MyActualProject
  DOWNLOAD_COMMAND ""
  BINARY_DIR MyActualProject-build
  SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/..     # SuperBuild is subdir of
source directory
  CMAKE_ARGS                                    # all the arguments to
configure your project.
    -DPERL_EXECUTABLE:STRING=${PERL_EXECUTABLE} # for example
  INSTALL_COMMAND ""                            # deployment not handled
by install
)

On 12/9/13 6:57 PM, "Eric Wing" <[email protected]> wrote:

>On 12/4/13, Eric Wing <[email protected]> wrote:
>> I'm currently trying to port a rather large, complex project to
>> Android. It has an existing CMake project so I'm trying to leverage
>> that. I've taken and enhanced one of the Android-CMake toolchains I've
>> found.
>>
>> This particular project I'm porting has unfortunate dependencies on
>> running the host system's Perl, Python, and Ruby interpreters to do
>> various kinds of on-the-fly code generation.
>>
>> The problem I'm having is that with the cross-compilation toolchain,
>> none of these (host) dependencies are found with CMake (I think it
>> uses FindPackage) because the cross-compilation toolchain has
>> sandboxed off everything to look in the target toolchain which won't
>> have Perl/Python/Ruby (which is completely reasonable; I'm not
>> complaining).
>>
>> But I need to solve this problem and figure out how to find/invoke the
>> host Perl/Python/Ruby/etc so my cross-compile can work.
>>
>> Can anybody give me suggestions on how I should approach this?
>
>Bump.
>I have a temporary workaround in place where I comment out the
>find_package calls for Perl/Python/Ruby, and then use -D switches with
>CMake to pre-populate the correct values for my host system.
>
>Thanks,
>Eric
>--
>Beginning iPhone Games Development
>http://playcontrol.net/iphonegamebook/
>--
>
>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://www.cmake.org/mailman/listinfo/cmake



________________________________
Notice: This UI Health Care e-mail (including attachments) is covered by the 
Electronic Communications Privacy Act, 18 U.S.C. 2510-2521, is confidential and 
may be legally privileged.  If you are not the intended recipient, you are 
hereby notified that any retention, dissemination, distribution, or copying of 
this communication is strictly prohibited.  Please reply to the sender that you 
have received the message in error, then delete it.  Thank you.
________________________________
--

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://www.cmake.org/mailman/listinfo/cmake

Reply via email to