yes basically INSTALL( PROGRAMS .... ) keeps file permissions instead of INSTALL( FILES ... ) which loses file permisisons
You don't nessiciarly have to run it by hand, can add a target that could be built... There is a little more work associated with release APK.... --------------- if( CMAKE_BUILD_TYPE STREQUAL "release" ) set( MORE_COMMANDS COMMAND jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ${MY_KEYSTORE} bin/${Project}-${CMAKE_BUILD_TYPE}-unsigned.apk alias_name COMMAND rm -f bin/${Project}-${CMAKE_BUILD_TYPE}.apk COMMAND zipalign -v 4 bin/${Project}-${CMAKE_BUILD_TYPE}-unsigned.apk bin/${Project}-${CMAKE_BUILD_TYPE}.apk ) endif( CMAKE_BUILD_TYPE STREQUAL "release" ) add_custom_target( package_apk COMMAND android.bat update project --target "android-14" --path . COMMAND ant.bat ${CMAKE_BUILD_TYPE} ${MORE_COMMANDS} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/package ) add_custom_target( install_apk COMMAND echo adb install command... COMMAND adb install package/bin/${Project}-${CMAKE_BUILD_TYPE}.apk ) add_custom_target( uninstall_apk COMMAND echo adb uninstall command... COMMAND adb uninstall org.d3x0r.${Project} ) On Thu, May 8, 2014 at 6:43 AM, Robert Dailey <rcdailey.li...@gmail.com>wrote: > So basically I am thinking of doing this: > > 1. Build my NDK libraries using the android cmake toolchain file as if > I'm just building normal C++ libraries on Linux with the CMake > provided makefiles in the binary output directory. > 2. Create a Java project using the 'android create project' tool and > check that into version control. The 'libs' directory will be empty. > 3. When building the NDK libraries, "install" them to the > corresponding libs directory for that java project (I may need to > install the same library multiple times if multiple java projects > depend on it). > 4. Run 'ant' by hand to build the java project. > > Likewise I think I can import all projects into eclipse: Import the > cmake build directory, and then each project in the source tree for > the java side. That way I can work with it all together in the same > IDE. > > Does this sound feasible or am I missing steps? > > On Wed, May 7, 2014 at 10:10 PM, J Decker <d3c...@gmail.com> wrote: > > by putting them in a directory <lib/<cputype> > > > > > > > > On Wed, May 7, 2014 at 5:19 PM, Robert Dailey <rcdailey.li...@gmail.com> > > wrote: > >> > >> How do I tell my android Java project where the *.so files are so it > >> can package them into the APK for dynamic loading when I call > >> System.loadlibrary() on the SO files? > >> > >> On Tue, May 6, 2014 at 6:59 PM, Eric Wing <ewmail...@gmail.com> wrote: > >> > So I have 4 examples I actually tried to document. > >> > These all use my fork/derivative of the Android-CMake toolchain, which > >> > I believe comes from OpenCV. (It had grown stale with later NDKs and I > >> > hit problems). All of these rely heavily on the external NDK module > >> > system (NDK_MODULE_PATH). > >> > > >> > The first and easiest (most self contained) is: > >> > https://bitbucket.org/ewing/hello-android-almixer > >> > This one invokes ant via shell scripts outside CMake. > >> > > >> > I then recently got SDL building with CMake using the same techniques. > >> > https://bitbucket.org/ewing/sdl_android_cleanup > >> > This one doesn't invoke ant because it builds only a library. There > >> > was actually an intermediate project I helped build after ALmixer that > >> > this also drew from, JavaScriptCore, and I documented my procedure > >> > here: > >> > > >> > > https://github.com/appcelerator/hyperloop/wiki/Building-JavaScriptCore-for-Android > >> > > >> > > >> > Once you have SDL built, and you set your NDK_MODULE_PATH directly, I > >> > have an Ant example and Gradle example. The ant one is just like > >> > Hello-Android-ALmixer. > >> > https://bitbucket.org/ewing/helloandroidsdl-ant > >> > https://bitbucket.org/ewing/helloandroidsdl-gradle > >> > > >> > The Gradle one is a lot of hacks. Google is ditching Ant/Eclipse for > >> > Gradle/IntelliJ, but their NDK support is even worse in the latter > >> > right now. > >> > > >> > Again, once you leave the NDK, all these things live outside CMake. I > >> > think it would be interesting to make CMake handle all of this, but I > >> > can't visualize it yet. But I hope others might be able to build on my > >> > work, like how I've built on Android-CMake. > >> > > >> > An aside, I noticed Gradle is painfully slow. Depending on how one > >> > does CMake integration, I'm not sure I want it. Just to invoke it and > >> > for it to figure out no real work needs to be done is measured in > >> > seconds for me. > >> > > >> > > >> > Thanks, > >> > Eric > >> > > >> > > >> > > >> > On 5/6/14, J Decker <d3c...@gmail.com> wrote: > >> >> This is a page on building to android; mostly it's about my library, > >> >> but > >> >> names can be replaced where required > >> >> > >> >> > https://code.google.com/p/c-system-abstraction-component-gui/wiki/BuildingForAndroid > >> >> > >> >> I went wit the separate cmake projects because I end up with multiple > >> >> android projects from the same libraries; but really it could be > >> >> appended > >> >> all-together > >> >> > >> >> > >> >> On Tue, May 6, 2014 at 2:32 PM, Robert Dailey > >> >> <rcdailey.li...@gmail.com>wrote: > >> >> > >> >>> Well to be clear, the NDK libraries are compiled in eclipse after I > >> >>> generate eclipse makefiles in CMake. Ideally, I want the CMake > script > >> >>> to also configure "ant" execution so that it builds java and links > in > >> >>> the NDK libraries. You say "just use the libraries", but I'm not > sure > >> >>> what this looks like as far as CMake script is concerned. > >> >>> > >> >>> Also I think we're using the android glue stuff in our existing > >> >>> project, but I'm not really sure what android glue is or if it is > >> >>> relevant to the CMake setup. > >> >>> > >> >>> On Tue, May 6, 2014 at 2:45 PM, J Decker <d3c...@gmail.com> wrote: > >> >>> > If you've built the sources into libs, you can just use the lib; > my > >> >>> sources > >> >>> > are much too complex of a tree for ndk to support to build as > >> >>> > sources.. > >> >>> > > >> >>> > The java sources are compiled at the 'ant <debug/release' step... > >> >>> > there > >> >>> is a > >> >>> > step before that I do that is 'android.bat update project --target > >> >>> > "android-14" --path' which makes a few other files from the > >> >>> > build.xml. > >> >>> > > >> >>> > > >> >>> > On Tue, May 6, 2014 at 8:42 AM, Robert Dailey > >> >>> > <rcdailey.li...@gmail.com> > >> >>> > wrote: > >> >>> >> > >> >>> >> There is also the question of how to handle the NDK sources and > >> >>> >> integrate them into the eclipse workspace. For example, I believe > >> >>> >> NDK > >> >>> >> sources must be under the 'jni' directory, but they won't be > >> >>> >> structured that way in the source tree. So I'm not sure if the > jni > >> >>> >> directory is required. I realize there's some reference material > >> >>> >> out > >> >>> >> there but I'm not sure what to pay attention to. Would be nice to > >> >>> >> get > >> >>> >> some overview steps that I can read along with the reference > >> >>> >> material > >> >>> >> so I know the order in which to look at things, essentially. > >> >>> >> > >> >>> >> On Tue, May 6, 2014 at 10:32 AM, Bill Hoffman > >> >>> >> <bill.hoff...@kitware.com > >> >>> > > >> >>> >> wrote: > >> >>> >> > You can look at what we did for VES: > >> >>> >> > http://www.kitware.com/blog/home/post/642 > >> >>> >> > > >> >>> >> > > >> >>> >> > -Bill > >> >>> >> > > >> >>> >> > > >> >>> >> > > >> >>> >> > -- > >> >>> >> > > >> >>> >> > 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 > >> >>> >> -- > >> >>> >> > >> >>> >> 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 > >> >>> > > >> >>> > > >> >>> > >> >> > >> > > >> > > >> > -- > >> > 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 > >> -- > >> > >> 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 > > > > >
-- 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