I'm trying to add bindings for various scripting languages to my library PhysicsFS ( http://icculus.org/physfs/ ), and I'm having some trouble.

Eventually I end up with something like this abbreviated example for the Perl bindings...

    # This is the actual main library, not the binding.
    ADD_LIBRARY(physfs SHARED whatever)

    # This is the binding.
    ADD_LIBRARY(physfs-perl SHARED "physfs-perl.c")
    TARGET_LINK_LIBRARIES(physfs-perl physfs)
    SET_TARGET_PROPERTIES(physfs-perl PROPERTIES OUTPUT_NAME "physfs")
    INSTALL(TARGETS physfs-perl LIBRARY DESTINATION "${_INSTALLPATH}")

...the problem is, of course, the OUTPUT_NAME. It ends up overwriting the libphysfs.so for the base library. The problem, though, is that you need this library name for Perl. I could keep the original name of physfs-perl, but that is awkward for actual usage in perl...

   # I assume the '-' confuses this, but you get the point.
   use physfs-perl;
   physfs-perl::init("");

...I'd rather that be the more concise "use physfs;" etc, but that requires the same library name as the base library, installed in a different path that Perl likes.

Is there some way to get cmake to store linker output somewhere else? Like, the physfs target puts its final shared libraries in CMakeFiles/physfs.dir, and the perl ones go in CMakeFiles/physfs-perl.dir? Currently they all go in the base of the binaries directory, even if this proves catastrophic. Perhaps they can have different file names but can be overridden in the INSTALL directive?

Specifying a path on OUTPUT_NAME confuses the build system, so that's not the right route, I think.

This is with CMake 2.8.0.

Thanks for any insight!

--ryan.

_______________________________________________
Powered by www.kitware.com

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

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

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to