Source rearrangement, OS X app bundle script
This commit is contained in:
parent
585542815d
commit
f443476435
4
.gitmodules
vendored
4
.gitmodules
vendored
@ -1,3 +1,3 @@
|
|||||||
[submodule "sys/db"]
|
[submodule "src/sys/db"]
|
||||||
path = sys/db
|
path = src/sys/db
|
||||||
url = git://github.com/aviat4ion/Query.git
|
url = git://github.com/aviat4ion/Query.git
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
* Wrapper program for embeded php
|
* Wrapper program for embeded php
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <sapi/embed/php_embed.h>
|
#include <sapi/embed/php_embed.h>
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
|
168
build_osx_bundle.php
Normal file
168
build_osx_bundle.php
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
<?php
|
||||||
|
define('VERSION', '0.1.0');
|
||||||
|
define('MAJOR_VERSION', '0');
|
||||||
|
define('MINOR_VERSION', '1');
|
||||||
|
define('APP_PATH', __DIR__.'/OpenSQLManager.app');
|
||||||
|
define('CONTENTS', APP_PATH . '/Contents');
|
||||||
|
define('MAC_OS', CONTENTS . '/MacOS');
|
||||||
|
define('RESOURCES', CONTENTS . '/Resources');
|
||||||
|
define('SRC_DIR', __DIR__.'/src');
|
||||||
|
define('SRC_RESOURCES', __DIR__.'/Resources');
|
||||||
|
|
||||||
|
if ( ! function_exists('glob_recursive'))
|
||||||
|
{
|
||||||
|
// Does not support flag GLOB_BRACE
|
||||||
|
/**
|
||||||
|
* Recursive wrapper for glob
|
||||||
|
*/
|
||||||
|
function glob_recursive($pattern, $flags = 0)
|
||||||
|
{
|
||||||
|
$files = glob($pattern, $flags);
|
||||||
|
|
||||||
|
foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR|GLOB_NOSORT) as $dir)
|
||||||
|
{
|
||||||
|
$files = array_merge($files, glob_recursive($dir.'/'.basename($pattern), $flags));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $files;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create bundle folder structure
|
||||||
|
*/
|
||||||
|
function create_dirs()
|
||||||
|
{
|
||||||
|
if ( ! is_dir(APP_PATH))
|
||||||
|
{
|
||||||
|
mkdir(APP_PATH);
|
||||||
|
|
||||||
|
if ( ! is_dir(CONTENTS))
|
||||||
|
{
|
||||||
|
mkdir(CONTENTS);
|
||||||
|
|
||||||
|
if ( ! is_dir(RESOURCES))
|
||||||
|
{
|
||||||
|
mkdir(RESOURCES);
|
||||||
|
mkdir(RESOURCES.'/images');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! is_dir(MAC_OS))
|
||||||
|
{
|
||||||
|
mkdir(MAC_OS);
|
||||||
|
mkdir(MAC_OS.'/sys');
|
||||||
|
mkdir(MAC_OS.'/sys/common');
|
||||||
|
mkdir(MAC_OS.'/sys/db');
|
||||||
|
mkdir(MAC_OS.'/sys/widgets');
|
||||||
|
mkdir(MAC_OS.'/sys/windows');
|
||||||
|
mkdir(MAC_OS.'/sys/db/classes');
|
||||||
|
mkdir(MAC_OS.'/sys/db/drivers');
|
||||||
|
mkdir(MAC_OS.'/sys/db/drivers/mysql');
|
||||||
|
mkdir(MAC_OS.'/sys/db/drivers/pgsql');
|
||||||
|
mkdir(MAC_OS.'/sys/db/drivers/sqlite');
|
||||||
|
mkdir(MAC_OS.'/sys/db/drivers/odbc');
|
||||||
|
mkdir(MAC_OS.'/sys/db/drivers/firebird');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Copy source files and binary into bundle structure
|
||||||
|
*/
|
||||||
|
function copy_src()
|
||||||
|
{
|
||||||
|
// Check for binary
|
||||||
|
if ( ! file_exists('OpenSQLManager'))
|
||||||
|
{
|
||||||
|
exit('App bundle not created: binary missing');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Drop to shell because php treats it as text
|
||||||
|
$src = __DIR__.'/OpenSQLManager';
|
||||||
|
$dest = MAC_OS;
|
||||||
|
`cp {$src} {$dest}`;
|
||||||
|
|
||||||
|
$raw_src_files = glob_recursive(SRC_DIR.'/*.php');
|
||||||
|
$src_files = array();
|
||||||
|
|
||||||
|
// Filter test files/directories
|
||||||
|
foreach($raw_src_files as $file)
|
||||||
|
{
|
||||||
|
// Skip test files/directories
|
||||||
|
if (stripos($file, 'test') !== FALSE) continue;
|
||||||
|
|
||||||
|
$src_files[] = $file;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Loop through the source files
|
||||||
|
foreach($src_files as $file)
|
||||||
|
{
|
||||||
|
// Figure out the new path
|
||||||
|
$new_file = str_replace(SRC_DIR, MAC_OS, $file);
|
||||||
|
|
||||||
|
// Copy the files
|
||||||
|
copy($file, $new_file);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy resources
|
||||||
|
$rs = glob_recursive(SRC_RESOURCES.'/*.*');
|
||||||
|
foreach ($rs as $resource)
|
||||||
|
{
|
||||||
|
// Figure out new path
|
||||||
|
$new_rs = str_replace(SRC_RESOURCES, RESOURCES, $resource);
|
||||||
|
|
||||||
|
// Copy the files
|
||||||
|
copy($resource, $new_rs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Make it an official app
|
||||||
|
*/
|
||||||
|
function create_plist()
|
||||||
|
{
|
||||||
|
$version = VERSION;
|
||||||
|
$minor = MINOR_VERSION;
|
||||||
|
$major = MAJOR_VERSION;
|
||||||
|
|
||||||
|
$plist = <<<XML
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleGetInfoString</key>
|
||||||
|
<string>App for managing databases.</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>OpenSQLManager</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>com.aviat4ion.OpenSQLManager</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>OpenSQLManager</string>
|
||||||
|
<key>CFBundleIconFile</key>
|
||||||
|
<string>OSM.icns</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>{$version}</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>APPL</string>
|
||||||
|
<key>IFMajorVersion</key>
|
||||||
|
<integer>{$major}</integer>
|
||||||
|
<key>IFMinorVersion</key>
|
||||||
|
<integer>{$minor}</integer>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
|
XML;
|
||||||
|
|
||||||
|
// Add the plist to the bundle
|
||||||
|
file_put_contents(CONTENTS.'/Info.plist', $plist);
|
||||||
|
}
|
||||||
|
|
||||||
|
create_dirs();
|
||||||
|
copy_src();
|
||||||
|
create_plist();
|
||||||
|
exit("App bundle created \n");
|
7
makefile
7
makefile
@ -1,8 +1,11 @@
|
|||||||
CC = gcc
|
|
||||||
CFLAGS = -c `/opt/php-embed/bin/php-config --includes` -Wall -g
|
CFLAGS = -c `/opt/php-embed/bin/php-config --includes` -Wall -g
|
||||||
|
|
||||||
LDFLAGS = -L/Library/Frameworks/Firebird.framework/Libraries -L/opt/php-embed/lib -lphp5 `/opt/php-embed/bin/php-config --libs`
|
LDFLAGS = -L/Library/Frameworks/Firebird.framework/Libraries -L/opt/php-embed/lib -lphp5 `/opt/php-embed/bin/php-config --libs`
|
||||||
|
|
||||||
all: OpenSQLManager.c
|
all: OpenSQLManager.c
|
||||||
${CC} -O0 -o OpenSQLManager.o OpenSQLManager.c ${CFLAGS}
|
${CC} -O0 -o OpenSQLManager.o OpenSQLManager.c ${CFLAGS}
|
||||||
${CC} -O0 -o OpenSQLManager OpenSQLManager.o ${LDFLAGS}
|
${CC} -O0 -o OpenSQLManager OpenSQLManager.o ${LDFLAGS}
|
||||||
|
|
||||||
|
release: OpenSQLManager.c
|
||||||
|
${CC} -O2 -o OpenSQLManager.o OpenSQLManager.c ${CFLAGS}
|
||||||
|
${CC} -O2 -o OpenSQLManager OpenSQLManager.o ${LDFLAGS}
|
@ -11,10 +11,10 @@
|
|||||||
<template name="responsive" />
|
<template name="responsive" />
|
||||||
</transformations>
|
</transformations>
|
||||||
<files>
|
<files>
|
||||||
<directory>.</directory>
|
<directory>src</directory>
|
||||||
<directory>tests</directory>
|
<directory>tests</directory>
|
||||||
<directory>sys/db/tests</directory>
|
<directory>src/sys/db/tests</directory>
|
||||||
<ignore>tests/*</ignore>
|
<ignore>tests/*</ignore>
|
||||||
<ignore>sys/db/tests/*</ignore>
|
<ignore>src/sys/db/tests/*</ignore>
|
||||||
</files>
|
</files>
|
||||||
</phpdoc>
|
</phpdoc>
|
BIN
resources/OSM.icns
Normal file
BIN
resources/OSM.icns
Normal file
Binary file not shown.
@ -32,7 +32,7 @@ ini_set('memory_limit', -1);
|
|||||||
|
|
||||||
// Set the current directory as the base for included files
|
// Set the current directory as the base for included files
|
||||||
define('OSM_BASE_DIR', __DIR__.'/sys');
|
define('OSM_BASE_DIR', __DIR__.'/sys');
|
||||||
define('OSM_RESOURCE_DIR', __DIR__.'/resources');
|
define('OSM_RESOURCE_DIR', __DIR__.'/../Resources');
|
||||||
define('OSM_SETTINGS_DIR', __DIR__);
|
define('OSM_SETTINGS_DIR', __DIR__);
|
||||||
define('OSM_PROGRAM_NAME', 'OpenSQLManager');
|
define('OSM_PROGRAM_NAME', 'OpenSQLManager');
|
||||||
define('OSM_VERSION', '0.2.0pre');
|
define('OSM_VERSION', '0.2.0pre');
|
Reference in New Issue
Block a user