Comments (7)
I'm very seriously considering changing entirely how extensions are built, to move them into Xcode. Not because the build speed is slow, but because I've added Crashlytics and all of our crash reports will be useless because they're happening inside an unsymbolicated "internal.so".
I'm not an expert at these things, but it looks like the easiest option would be to have an xcode project per extension, which spits out something like libFOO.dylib and foo.lua, then modify the package paths to look for .dylib instead of .so.
Before I sink a bunch of time into figuring out how to go about producing a working app that requires no changes in init.lua behaviour, what do folk like @asmagill @Habbie @josephholsten and @jhgg think about this?
from hammerspoon.
+1 to better metrics
from hammerspoon.
While I'm all for better metrics and better debug options, how much does this change the development path of a specific module? When I'm tweaking and refining something and rebuilding 20 times in an hour to get something ready, the overhead of Xcode, even xcodebuild, would be annoying... but if it could be more automated, like a wrapper that I can just drop my files into (maybe a few more steps, but simple) once I'm ready to make it public, then I see no reason not to do so, especially for modules that make it into core.
On Dec 30, 2014, at 7:44 PM, Joseph Anthony Pasquale Holsten [email protected] wrote:
+1 to better metrics
—
Reply to this email directly or view it on GitHub #49 (comment).
from hammerspoon.
@asmagil one option would be to use gyp to generate the Xcode project files. We could also continue to support building via a Makefile I would think.
The answer really is, I don't know because I haven't yet done any work to see how this would have to be done. My hope is that it's just an administrative change and a module wouldn't need any code changes to switch between .so and .dylib.
from hammerspoon.
Managed to figure out a way to get debug symbols into Crashlytics without having to change how extensions are built, significantly. As such, I'm not going to continue trying to get the extensions built as dylib bundles.
I wouldn't object to it if someone else wants to do it, but I no longer have a compelling reason to :)
from hammerspoon.
Just for reference: I did a prototype transition to gyp as build system here:
https://github.com/mgee/hammerspoon/tree/gyp
In this branch gyp is used to generate Xcode projects for Hammerspoon and all extensions.
Note that this branch is not up-to-date with Hammerspoon/master.
from hammerspoon.
This was closed by #468
from hammerspoon.
Related Issues (20)
- Feature Request: I would like to know if a modal is in the state active HOT 1
- Feature request: `:keydown` callback for `hs.chooser`
- Delete Preferences modal is confusing
- Moving Apps To Spaces HOT 2
- Memory is growing up to 2-4GB after some time - how to debug? HOT 1
- ** Warning: LuaSkin: hs.audiodevice.watcher callback fired, but theWatcher is nil. This is a bug
- ERROR: hotkey.lua:415: key must be a string or a number HOT 6
- Create Helper apps with Hammerspoon and sell it? HOT 2
- attempt to call a nil value (method 'setCallback')
- A way to prevent hs.alert.show() from stealing focus? HOT 1
- Unexpected behavior when moving a window with `moveToUnit` HOT 2
- hs.window:raise() focuses raised window when other window for same application is focused HOT 1
- hs.window.filter stops emitting windowFocused events for application if one window has tabs HOT 1
- Add functions to hs.mouse to get more information about cursor type HOT 1
- hs.notify.show doesn't work HOT 2
- Support for Elgato Stream Deck Neo HOT 1
- hs.serial:sendData(value) chokes after some indeterminate amount of time? HOT 2
- hs.socket and hs.socket.udp listens on all interfaces
- hs.spaces.moveWindowToSpace not working HOT 3
- `hs.alert.defaultStyle`: option to add top or bottom margin
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hammerspoon.