Skip to content
Snippets Groups Projects
Commit bf0f02c0 authored by Daniel Stonier's avatar Daniel Stonier
Browse files

use the maven publish plugin - less hackish maven local publishing

parent 4ffe0936
No related branches found
No related tags found
No related merge requests found
...@@ -42,9 +42,14 @@ endmacro() ...@@ -42,9 +42,14 @@ endmacro()
# that it is called in with install and installApp targets. # that it is called in with install and installApp targets.
macro(catkin_rosjava_setup) macro(catkin_rosjava_setup)
find_gradle() find_gradle()
if( ${ARGC} EQUAL 0 )
set(gradle_tasks "install installApp")
else()
string(REPLACE ";" " " gradle_tasks "${ARGV}")
endif()
add_custom_target(gradle-${PROJECT_NAME} add_custom_target(gradle-${PROJECT_NAME}
ALL ALL
COMMAND ${CATKIN_ENV} ${${PROJECT_NAME}_gradle_BINARY} install installApp COMMAND ${CATKIN_ENV} ${${PROJECT_NAME}_gradle_BINARY} ${gradle_tasks}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
) )
catkin_package_xml() catkin_package_xml()
...@@ -64,29 +69,6 @@ macro(catkin_rosjava_setup) ...@@ -64,29 +69,6 @@ macro(catkin_rosjava_setup)
add_dependencies(gradle-clean gradle-clean-${PROJECT_NAME}) add_dependencies(gradle-clean gradle-clean-${PROJECT_NAME})
endmacro() endmacro()
##############################################################################
# RosJava Repo
##############################################################################
# Calls the root level gradle wrapper to run the multi-project
# configuration and compile the entire suite.
macro(catkin_rosjava_repo_setup)
find_gradle()
find_gradle_repo_root()
add_custom_target(gradle-${PROJECT_NAME}
ALL
COMMAND ${CATKIN_ENV} ${${PROJECT_NAME}_gradle_BINARY} install installApp
WORKING_DIRECTORY ${${PROJECT_NAME}_gradle_ROOT}
)
catkin_package_xml()
foreach(depends in ${${PROJECT_NAME}_BUILD_DEPENDS})
if(TARGET gradle-${depends})
#message(STATUS "Adding dependency gradle-${depends}")
add_dependencies(gradle-${PROJECT_NAME} gradle-${depends})
endif()
endforeach()
endmacro()
############################################################################## ##############################################################################
# Android Package # Android Package
############################################################################## ##############################################################################
...@@ -95,14 +77,19 @@ endmacro() ...@@ -95,14 +77,19 @@ endmacro()
# assembleDebug or assembleRelease # assembleDebug or assembleRelease
macro(catkin_android_setup) macro(catkin_android_setup)
find_gradle() find_gradle()
if( ${ARGC} EQUAL 0 )
if(CMAKE_BUILD_TYPE STREQUAL "Release") if(CMAKE_BUILD_TYPE STREQUAL "Release")
set(gradle_task "assembleRelase") set(gradle_tasks "assembleRelase")
else()
set(gradle_tasks "assembleDebug")
endif()
else() else()
set(gradle_task "assembleDebug") set(gradle_tasks ${ARGV})
endif() endif()
message(STATUS "Gradle Tasks................${gradle_tasks}")
add_custom_target(gradle-${PROJECT_NAME} add_custom_target(gradle-${PROJECT_NAME}
ALL ALL
COMMAND ${CATKIN_ENV} ${${PROJECT_NAME}_gradle_BINARY} ${gradle_task} install COMMAND ${CATKIN_ENV} ${${PROJECT_NAME}_gradle_BINARY} ${gradle_tasks}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
) )
catkin_package_xml() catkin_package_xml()
......
...@@ -110,7 +110,8 @@ def create_gradle_package_files(args, author, is_library, sdk_version): ...@@ -110,7 +110,8 @@ def create_gradle_package_files(args, author, is_library, sdk_version):
filename = os.path.join(package_path, template_name) filename = os.path.join(package_path, template_name)
template = read_template_file(template_name) template = read_template_file(template_name)
contents = instantiate_template(template, package_name, author, plugin_name, sdk_version) contents = instantiate_template(template, package_name, author, plugin_name, sdk_version)
print("Template") if is_library:
contents += extra_gradle_library_text()
try: try:
f = open(filename, 'w') f = open(filename, 'w')
f.write(contents) f.write(contents)
...@@ -140,6 +141,21 @@ def add_to_root_gradle_settings(name): ...@@ -140,6 +141,21 @@ def add_to_root_gradle_settings(name):
settings_gradle.write("include '%s'\n" % name) settings_gradle.write("include '%s'\n" % name)
def extra_gradle_library_text():
text = "\n"
text += "/* http://www.flexlabs.org/2013/06/using-local-aar-android-library-packages-in-gradle-builds */\n"
text += "android.libraryVariants\n"
text += "publishing {\n"
text += " publications {\n"
text += " maven(MavenPublication) {\n"
text += " /* artifact bundleDebug */\n"
text += " artifact bundleRelease\n"
text += " }\n"
text += " }\n"
text += "}\n"
return text
def create_android_package(is_library=False): def create_android_package(is_library=False):
args = parse_arguments() args = parse_arguments()
create_android_project(args.name[0], args.sdk_version, args.android_package_name, is_library) create_android_project(args.name[0], args.sdk_version, args.android_package_name, is_library)
......
...@@ -17,12 +17,13 @@ ...@@ -17,12 +17,13 @@
/* /*
Examples of Examples of
1) dependencies from another project in this gradle stack. 1) dependencies from another project in this gradle stack.
2) dependency from a maven repository. 2,3) dependency from a maven repository.
*/ */
/* /*
dependencies { dependencies {
compile project(':android_apps_core_components') compile project(':local_android_library_dependency')
compile 'ros.android_core:android_gingerbread_mr1:0.0.0-SNAPSHOT' compile 'ros.android_core:android_gingerbread_mr1:0.0.0-SNAPSHOT'
compile 'com.github.ros_java.android_extras:android_extras_gingerbread:0.1.0'
} }
*/ */
......
...@@ -34,7 +34,10 @@ subprojects { ...@@ -34,7 +34,10 @@ subprojects {
classpath 'com.android.tools.build:gradle:0.4.1' classpath 'com.android.tools.build:gradle:0.4.1'
} }
} }
apply plugin: 'maven' apply plugin: 'maven'
apply plugin: "maven-publish"
repositories { repositories {
mavenLocal() mavenLocal()
maven { maven {
...@@ -46,10 +49,6 @@ subprojects { ...@@ -46,10 +49,6 @@ subprojects {
exclude group: 'xml-apis' exclude group: 'xml-apis'
} }
/*
EXPERIMENTAL: Trick to get local maven installs until the plugin supports an
install step for aar's (coming soon).
*/
uploadArchives { uploadArchives {
repositories { repositories {
mavenDeployer { mavenDeployer {
...@@ -57,19 +56,4 @@ subprojects { ...@@ -57,19 +56,4 @@ subprojects {
} }
} }
} }
task install() << {
description = 'installs .aar files to the local maven repository.'
}
/* Get the debug versions of the aar's as well. */
afterEvaluate { Project project ->
if (plugins.findPlugin('android-library')) {
task doDebugArchives() << {
project.artifacts.add("default", bundleDebug)
}
doDebugArchives.dependsOn('bundleDebug')
uploadArchives.dependsOn('doDebugArchives')
install.dependsOn('uploadArchives')
}
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment