-
-
Notifications
You must be signed in to change notification settings - Fork 7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update Eclipse project files #8621
base: master
Are you sure you want to change the base?
Conversation
@facchinm The requested change was made and the PR is up-to-date with master again. Is any additional action required to get this merged? |
7fa1bb4
to
1e744bd
Compare
1e744bd
to
52f1c4b
Compare
Force pushed to c00e50a to also remove references to that removed library from the class path in the launcher config.xml and config_debug.xml files. |
These additional changes make the project more clean, but also allow running the Arduino IDE from Java Eclipse on Windows. To do so, create a run configuration for main class
Note: To be able to run the project from Eclipse, |
a9f9d8f
to
964c189
Compare
Force pushed to revert linking to my personal 32 bits JVM by name in the |
964c189
to
631ceab
Compare
Rebased this PR onto master. |
631ceab
to
6ed443e
Compare
Rebased this PR onto master to resolve merge conflicts. |
9ee234c
to
ee3c37b
Compare
In the current PR state, the following setup is possible in Eclipse by importing Note that since parent project |
Hi @Pieter12345 , diff --git a/arduino-core/build.xml b/arduino-core/build.xml
index cef9fe404..4ddbaea94 100644
--- a/arduino-core/build.xml
+++ b/arduino-core/build.xml
@@ -5,6 +5,9 @@
<fileset dir="lib">
<include name="*.jar"/>
</fileset>
+ <fileset dir="../app/lib">
+ <include name="*.jar"/>
+ </fileset>
<pathelement path="${env.JAVA_HOME}/lib/tools.jar"/>
</path>
diff --git a/app/build.xml b/app/build.xml
index cc38670ad..08b57ba31 100644
--- a/app/build.xml
+++ b/app/build.xml
@@ -2,6 +2,9 @@
<project name="Arduino PDE" default="build">
<path id="class.path">
+ <fileset dir="../arduino-core/lib">
+ <include name="*.jar"/>
+ </fileset>
<fileset dir="lib">
<include name="*.jar"/>
</fileset> but I'm not a big fan of this approach. Probably unifying the Anyway, I also haven't been able to setup the eclipse project to run; it looks like APP_DIR variable is not being applied, so all files are searched under |
I've successfully setup eclipse without the "parent" Arduino project, so I'm positive to removing it.
+1 to this too, but we should check launchers configuration for the "dist" target. |
- Replace the HTTP404 license link by a link to the jmdns GitHub repository link (https://github.com/jmdns/jmdns/blob/jmdns-3.5.3/LICENSE). - Remove the LGPL-2.1 license since the repository only mentions ASL-2.0.
- Add missing dependency references to Eclipse's build path. - Fix broken relative dependency reference in Eclipse's build path.
Remove commons-httpclient-3.1 dependency since it is not used.
This was forgotten in commit dd58a72.
`app/lib` and `arduino-core/lib` contained a different version of `apple.jar`. This copies the latest version (`app/lib/apple.jar`) to `arduino-core/lib/apple.jar`.
- Sync Eclipse classpath file (`.classpath`) by adding exactly all entries that are in the launcher's classpath configuration (`build/windows/launcher/config.xml`). - Refer to `arduino-core/lib` where possible to avoid having duplicate jars on the classpath (this fixes problems when running Arduino from Eclipse and prepares for having a project without duplicate dependencies). - Sort the Eclipse classpath files alphabetically (This greatly helps when comparing them).
This way, it will be next to the mxl-apis jar in an alphabetically sorted file system.
Remove libraries from `app/lib` that are already present in `arduino-core/lib`. This removes redundancy and makes it trivial which `.jar` file is actually used.
Remove exclude file entries that do not exist in the project.
Update `app/.classpath` so that it is consistent with `/.classpath`. This file is used when setting up `app` as a module of the main project (which is optional, since the main project and the `app` module have the same source and bin directories).
Remove Eclipse project files that allow a user to setup the project container as the `app` project. The proper way to setup the Arduino IDE (before and after this commit) is to import both the `app` and `arduino-core` project in Eclipse.
I've tried putting a
Perhaps try to set your working directory (under |
ee3c37b
to
bb8ea29
Compare
Rebased onto master. |
This may be in fact what In was missing 🙂 About the maven/gradle dependency manager I'm totally positive about adding it. The problem right now is really technical debt since we don't have a proper Java programmer. Any pull request is well accepted as usual, but this time it could be a bit cumbersome to provide test builds since the build environment would change too. |
Maven would fully replace Apache Ant, which means that the entire Build.xml files would have to be converted to pom.xml Maven files in an entirely different format. Finding a translation for all functionality and then translating it will likely take quite some time, but would be good for the project (less software to install to start developing (only Maven, which comes with most IDE's) and no more IDE-dependent (.classpath / .project files for Eclipse) files). |
The CI infrastructure is based on Jenkins and builds the IDE for every merged commit to compose the hourly build (crosscompiling with If we replace
They all look simple (maybe appbundler is not so easy but there are a couple of projects on github that look ok). |
revapi/testjars can compile jar files |
- Access `programmerPid` statically, since it's a static field. - Add missing override tag.
This duplicates dependency jars that are used by both `app` and `arduino-core` from `arduino-core/lib` into `app/lib`. Reasoning is that the module/project-specific Ant build files point only to the `lib` directory of its project, leading to missing dependencies. Pointing Ant to both `app/lib` and `arduino-core/lib` would work, but include more dependencies than desired to the classpath. This solution should be seen as temporary since the build system should eventually download dependencies from some repository (Maven / Gradle).
I've added a copy of the jars that are used in both As of this point, this PR:
Can you validate that this change fixes the Ant build @facchinm? If so, is there anything left that prevents this PR from being merged? |
|
This PR adds missing build path entries to the Java Eclipse IDE specific
.classpath
files, effectively resolving all compile errors in the project. An outdated license file for jmdns was also updated in the process.The changes in this PR only affect people who use Java Eclipse to build this project.
This resolves issue #5459.