Checking in before destroying everything with flatpak-builder. :-)
This commit is contained in:
parent
511bf72427
commit
5db373e835
8 changed files with 78 additions and 26 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -4,6 +4,7 @@ thirdparty/scintilla/
|
|||
thirdparty/lexilla/
|
||||
ui/generated/
|
||||
cmake-build-debug/
|
||||
flatpak-build/
|
||||
crapForLater/
|
||||
|
||||
*~
|
||||
|
|
|
@ -73,10 +73,15 @@ include_directories(
|
|||
|
||||
add_definitions(
|
||||
-Wall
|
||||
-Wno-unknown-pragmas
|
||||
-O0
|
||||
${GTK3_CFLAGS}
|
||||
)
|
||||
|
||||
#set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES LINK_SEARCH_START_STATIC ON)
|
||||
#set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES LINK_SEARCH_END_STATIC ON)
|
||||
#target_link_options(${CMAKE_PROJECT_NAME} PRIVATE -static-libgcc -static-libstdc++ -static)
|
||||
|
||||
target_link_libraries(${CMAKE_PROJECT_NAME}
|
||||
-rdynamic
|
||||
${CMAKE_SOURCE_DIR}/thirdparty/scintilla/bin/scintilla.a
|
||||
|
@ -85,3 +90,5 @@ target_link_libraries(${CMAKE_PROJECT_NAME}
|
|||
-lm
|
||||
-lstdc++
|
||||
)
|
||||
|
||||
#target_link_options(${CMAKE_PROJECT_NAME} PRIVATE -static-libgcc -static-libstdc++)
|
||||
|
|
|
@ -1,16 +1,19 @@
|
|||
#!/bin/bash
|
||||
|
||||
pushd thirdparty
|
||||
|
||||
# Scintilla
|
||||
[[ -d scintilla ]] && rm -rf scintilla
|
||||
tar xzf scintilla531.tgz
|
||||
pushd scintilla/gtk
|
||||
GTK3=1 make
|
||||
popd
|
||||
|
||||
# Lexilla
|
||||
[[ -d lexilla ]] && rm -rf lexilla
|
||||
tar xzf lexilla520.tgz
|
||||
pushd lexilla/src
|
||||
make
|
||||
popd
|
||||
|
||||
popd
|
||||
|
|
5
buildFlatpak.sh
Normal file
5
buildFlatpak.sh
Normal file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/bash
|
||||
|
||||
flatpak install --user flathub org.gnome.Platform//3.26 org.gnome.Sdk//3.26
|
||||
|
||||
flatpak-builder flatpak-build flatpak.yaml
|
31
flatpak.yaml
Normal file
31
flatpak.yaml
Normal file
|
@ -0,0 +1,31 @@
|
|||
app-id: com.kangaroopunch.JoeyDev
|
||||
runtime: org.gnome.Platform
|
||||
runtime-version: '3.26'
|
||||
sdk: org.gnome.Sdk
|
||||
command: joeydev
|
||||
modules:
|
||||
- name: joeydev
|
||||
buildsystem: cmake-ninja
|
||||
#config-opts:
|
||||
sources:
|
||||
- type: dir
|
||||
path: include
|
||||
- type: dir
|
||||
path: src
|
||||
- type: dir
|
||||
path: thirdparty
|
||||
- type: dir
|
||||
path: ui
|
||||
- type: dir
|
||||
path: tools
|
||||
- type: file
|
||||
path: buildDeps.sh
|
||||
- type: file
|
||||
path: CMakeLists.txt
|
||||
finish-args:
|
||||
- --share=ipc
|
||||
- --socket=fallback-x11
|
||||
- --socket=wayland
|
||||
- --filesystem=host
|
||||
- --share=network
|
||||
- --device=dri
|
|
@ -45,7 +45,7 @@
|
|||
|
||||
// Allocation helpers.
|
||||
#define NEW(t) (t*)calloc(1, sizeof(t)) // Add check for NULL and die here.
|
||||
#define DEL(v) {if(v!=NULL) {free(v); v=NULL;}}
|
||||
#define DEL(v) do { if (v != NULL) { free(v); v = NULL; } break; } while(1)
|
||||
|
||||
|
||||
// Must be the first element of all userData structs.
|
||||
|
|
|
@ -20,6 +20,10 @@
|
|||
*/
|
||||
|
||||
|
||||
#pragma clang diagnostic push
|
||||
#pragma ide diagnostic ignored "EmptyDeclOrStmt"
|
||||
|
||||
|
||||
#include <errno.h>
|
||||
#include "common.h"
|
||||
#include "vecparse.h"
|
||||
|
@ -716,11 +720,14 @@ int vecparser(char *programIn, VecByteCodeT *bytecode) {
|
|||
}
|
||||
|
||||
// Unwind variables array if needed.
|
||||
/*
|
||||
if (variables != NULL) {
|
||||
while (arrlen(variables) > 0) {
|
||||
arrdel(variables, 0);
|
||||
}
|
||||
}
|
||||
*/
|
||||
arrfree(variables);
|
||||
|
||||
// Unwind unresolved array if needed.
|
||||
if (unresolved != NULL) {
|
||||
|
@ -764,3 +771,6 @@ int vecparser(char *programIn, VecByteCodeT *bytecode) {
|
|||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
#pragma clang diagnostic pop
|
||||
|
|
45
src/vector.c
45
src/vector.c
|
@ -21,6 +21,7 @@
|
|||
|
||||
|
||||
#pragma clang diagnostic push
|
||||
//#pragma ide diagnostic ignored "EmptyDeclOrStmt"
|
||||
#pragma ide diagnostic ignored "cppcoreguidelines-narrowing-conversions"
|
||||
#pragma ide diagnostic ignored "hicpp-multiway-paths-covered"
|
||||
|
||||
|
@ -348,6 +349,8 @@ EVENT gboolean drawVectorImageMotionEvent(GtkWidget *widget, GdkEventMotion *eve
|
|||
int temp;
|
||||
char buffer[8];
|
||||
|
||||
(void)widget;
|
||||
|
||||
// If we're in a drawing action, bail out of this.
|
||||
if (self->clickState != CLICK_NONE) return FALSE;
|
||||
|
||||
|
@ -416,7 +419,7 @@ EVENT void editorVectorNotify(GtkWidget *sciWidget, gint ctrlID, struct SCNotifi
|
|||
}
|
||||
|
||||
// Release bytecode.
|
||||
if (byteCode.bytes != NULL) DEL(byteCode.bytes);
|
||||
DEL(byteCode.bytes);
|
||||
// Mark text dirty. SCN_SAVEPOINTLEFT isn't being reliable.
|
||||
setDirty(self, TRUE);
|
||||
}
|
||||
|
@ -552,7 +555,7 @@ static void loadTraceImage(VectorDataT *self, char *filename) {
|
|||
cairo_surface_t *temp;
|
||||
cairo_t *cr;
|
||||
|
||||
if (self->tracename != NULL) DEL(self->tracename);
|
||||
DEL(self->tracename);
|
||||
self->tracename = strdup(filename);
|
||||
gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(self->fileVectorTraceImage), filename);
|
||||
|
||||
|
@ -673,7 +676,7 @@ EVENT void menuVectorFileNew(GtkWidget *object, gpointer userData) {
|
|||
gtk_file_chooser_unselect_all(GTK_FILE_CHOOSER(self->fileVectorTraceImage));
|
||||
}
|
||||
// Clear any filename.
|
||||
if (self->filename != NULL) DEL(self->filename);
|
||||
DEL(self->filename);
|
||||
// Refresh widget.
|
||||
gtk_widget_queue_draw(self->drawVectorImage);
|
||||
// Mark clean.
|
||||
|
@ -711,7 +714,7 @@ EVENT void menuVectorFileOpen(GtkWidget *object, gpointer userData) {
|
|||
setDirty(self, FALSE);
|
||||
menuVectorFileNew(object, userData);
|
||||
|
||||
if (self->filename != NULL) DEL(self->filename);
|
||||
DEL(self->filename);
|
||||
self->filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
|
||||
|
||||
in = fopen(self->filename, "rt");
|
||||
|
@ -740,7 +743,7 @@ EVENT void menuVectorFileOpen(GtkWidget *object, gpointer userData) {
|
|||
count++;
|
||||
}
|
||||
fclose(in);
|
||||
if (line != NULL) DEL(line);
|
||||
DEL(line);
|
||||
SSM(SCI_ADDTEXT, strlen(self->buffer), (sptr_t)self->buffer);
|
||||
//SSM(SCI_CONVERTEOLS, SC_EOL_CR, 0);
|
||||
status(self, "Image loaded.");
|
||||
|
@ -787,17 +790,15 @@ EVENT void menuVectorFileSave(GtkWidget *object, gpointer userData) {
|
|||
fprintf(out, "------------------------------------------------------------------------------\n");
|
||||
fprintf(out, "%s\n", code);
|
||||
fclose(out);
|
||||
// Release code.
|
||||
DEL(code);
|
||||
status(self, "Saved.");
|
||||
// We're clean now.
|
||||
setDirty(self, FALSE);
|
||||
} else {
|
||||
// Release code.
|
||||
DEL(code);
|
||||
|
||||
//***TODO*** Something bad happened.
|
||||
}
|
||||
|
||||
// Release code.
|
||||
DEL(code);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -816,7 +817,7 @@ EVENT void menuVectorFileSaveAs(GtkWidget *object, gpointer userData) {
|
|||
gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), TRUE);
|
||||
|
||||
if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) {
|
||||
if (self->filename != NULL) DEL(self->filename);
|
||||
DEL(self->filename);
|
||||
self->filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
|
||||
menuVectorFileSave(object, self);
|
||||
}
|
||||
|
@ -855,9 +856,7 @@ static void renderBytecode(VecByteCodeT *bytecode, VectorDataT *self) {
|
|||
debug("-----------------------------------\n");
|
||||
|
||||
// Clear collected points array.
|
||||
while (arrlen(self->pointList) > 0) {
|
||||
arrdel(self->pointList, 0);
|
||||
}
|
||||
arrfree(self->pointList);
|
||||
|
||||
// Reset JoeyLib draw state.
|
||||
jlPaletteDefault(self->jlc);
|
||||
|
@ -1144,14 +1143,10 @@ static void renderBytecode(VecByteCodeT *bytecode, VectorDataT *self) {
|
|||
debug("Points: %ld\n", arrlen(self->pointList));
|
||||
|
||||
// Clear variables.
|
||||
while (arrlen(self->variables) > 0) {
|
||||
arrdel(self->variables, 0);
|
||||
}
|
||||
arrfree(self->variables);
|
||||
|
||||
// Clear stack.
|
||||
while (arrlen(stack) > 0) {
|
||||
arrdel(stack, 0);
|
||||
}
|
||||
arrfree(stack);
|
||||
|
||||
// Refresh widget.
|
||||
gtk_widget_queue_draw(self->drawVectorImage);
|
||||
|
@ -1554,11 +1549,11 @@ static void winVectorDelete(gpointer userData) {
|
|||
cairo_surface_destroy(self->surface);
|
||||
cairo_surface_destroy(self->scaled);
|
||||
cairo_surface_destroy(self->target);
|
||||
if (self->trace != NULL) cairo_surface_destroy(self->trace);
|
||||
if (self->filename != NULL) DEL(self->filename);
|
||||
if (self->title != NULL) DEL(self->title);
|
||||
if (self->tracename != NULL) DEL(self->tracename);
|
||||
if (self->buffer != NULL) DEL(self->buffer);
|
||||
if (self->trace != NULL) cairo_surface_destroy(self->trace);
|
||||
DEL(self->filename);
|
||||
DEL(self->title);
|
||||
DEL(self->tracename);
|
||||
DEL(self->buffer);
|
||||
|
||||
DEL(self);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue