From 63eb66b2d7ed135c11f6a8c0a5bb7b1418066816 Mon Sep 17 00:00:00 2001 From: "jose.pereda" Date: Wed, 20 Jul 2022 18:10:28 +0200 Subject: [PATCH] Add sharedlib goal --- .../java/com/gluonhq/NativeSharedLibMojo.java | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/main/java/com/gluonhq/NativeSharedLibMojo.java diff --git a/src/main/java/com/gluonhq/NativeSharedLibMojo.java b/src/main/java/com/gluonhq/NativeSharedLibMojo.java new file mode 100644 index 0000000..6921eef --- /dev/null +++ b/src/main/java/com/gluonhq/NativeSharedLibMojo.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2022, Gluon + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package com.gluonhq; + +import com.gluonhq.substrate.SubstrateDispatcher; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugins.annotations.Execute; +import org.apache.maven.plugins.annotations.LifecyclePhase; +import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.ResolutionScope; + +@Mojo(name = "sharedlib", defaultPhase = LifecyclePhase.COMPILE, + requiresDependencyResolution = ResolutionScope.COMPILE) +@Execute(phase = LifecyclePhase.PROCESS_CLASSES) +public class NativeSharedLibMojo extends NativeBaseMojo { + + @Override + public void execute() throws MojoExecutionException { + boolean result; + try { + SubstrateDispatcher dispatcher = createSubstrateDispatcher(); + result = dispatcher.nativeSharedLibrary(); + } catch (Exception e) { + e.printStackTrace(); + throw new MojoExecutionException("Error", e); + } + + if (!result) { + throw new MojoExecutionException("Native shared library failed"); + } + } +} \ No newline at end of file