Skip to content

Commit

Permalink
Added circle.yml and fixed incorrect path joining in settings
Browse files Browse the repository at this point in the history
  • Loading branch information
jkozera committed Mar 5, 2016
1 parent 488fee8 commit 483ba59
Show file tree
Hide file tree
Showing 8 changed files with 163 additions and 8 deletions.
17 changes: 13 additions & 4 deletions binding.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,26 @@
{
"target_name": "nodelucene",
"sources": [ "nodelucene/LuceneIndex.cc" ],
"libraries": [ "-llucene++", "-llucene++-contrib", "-L/usr/local/lib", "-Wl,-rpath,\\$$ORIGIN/resources" ],
"libraries": [
"-llucene++",
"-llucene++-contrib",
"-L/usr/local/lib",
# for Circle CI:
"-L/home/ubuntu/installprefix/lib/x86_64-linux-gnu",
"-Wl,-rpath,\\$$ORIGIN/resources"
],
"xcode_settings": {
"OTHER_CFLAGS": [
"-std=c++11", "-stdlib=libc++", "-mmacosx-version-min=10.7", "-fexceptions"
],
},
"cflags!": [ "-fno-exceptions" ],
"cflags_cc!": [ "-fno-exceptions" ],
"cflags!": [ "-fno-exceptions", "-fno-rtti" ],
"cflags_cc!": [ "-fno-exceptions", "-fno-rtti" ],
"include_dirs": [
"/usr/local/include/lucene++",
"/usr/local/include"
"/usr/local/include",
# for Circle CI:
"/home/ubuntu/installprefix/include/lucene++"
],
}
]
Expand Down
3 changes: 2 additions & 1 deletion bower.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
"name": "zest",
"version": "0.0.0",
"dependencies": {
"Materialize": "https://github.com/zestdocs/materialize.git#v0.97.5.autocomplete"
"Materialize": "https://github.com/zestdocs/materialize.git#v0.97.5.autocomplete",
"jquery": ">=2.1.1"
},
"license": "MIT",
"private": true,
Expand Down
15 changes: 15 additions & 0 deletions circle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
machine:
node:
version: 5.1.0
dependencies:
pre:
- sudo apt-get update; sudo apt-get install cmake libxerces-c-dev libboost-date-time-dev libboost-filesystem-dev libboost-iostreams-dev libboost-regex-dev libboost-system-dev libboost-thread-dev libleveldb-dev
override:
- ./scripts/build_circle_deps.sh
cache_directories:
- ~/LucenePlusPlus
- ~/libarchive
- ~/patchelf-0.9
test:
override:
- ./scripts/build_circle.sh
2 changes: 1 addition & 1 deletion nodelucene/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.3)
cmake_minimum_required(VERSION 2.8.12)
project(searcher)

# from https://cmake.org/pipermail/cmake/2008-January/019321.html
Expand Down
66 changes: 66 additions & 0 deletions scripts/build_circle.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#!/bin/bash

ELECTRON_VERSION=$(grep 'electron_version = ' Gruntfile.js | cut -d '"' -f 2)

cd nodelucene
PKG_CONFIG_PATH=$HOME/installprefix/lib/pkgconfig cmake .
make

cd ../sogrep-src
PKG_CONFIG_PATH=$HOME/installprefix/lib/pkgconfig cmake .
make

cd ..
npm install node-gyp
npm install --no-optional

# rebuild nodelucene:
HOME=~/.electron-gyp ./node_modules/.bin/node-gyp rebuild --target=$ELECTRON_VERSION --arch=x64 --dist-url=https://atom.io/download/atom-shell
# rebuild leveldown:
cd node_modules/leveldown
HOME=~/.electron-gyp ../.bin/node-gyp rebuild --target=$ELECTRON_VERSION --arch=x64 --dist-url=https://atom.io/download/atom-shell
cd ../..
# rebuild node_sqlite3:
npm install $HOME/node-sqlite3
cd node_modules/sqlite3
HOME=~/.electron-gyp ../.bin/node-gyp configure --module_name=node_sqlite3 --module_path=../lib/binding/node-v47-linux-x64
HOME=~/.electron-gyp ../.bin/node-gyp rebuild --target=$ELECTRON_VERSION --arch=x64 --target_platform=linux --dist-url=https://atom.io/download/atom-shell --module_name=node_sqlite3 --module_path=../lib/binding/node-v47-linux-x64
cd ../..
cp node_modules/sqlite3/build/Release/node_sqlite3.node node_modules/sqlite3/lib/binding/node-v47-linux-x64
# build zest_score.sqlext:
gcc -shared -fPIC -I$HOME/node-sqlite3/deps/sqlite-autoconf-3090100 -o zest_score.sqlext sqlite_score/score.c

npm install grunt-cli bower
./node_modules/.bin/grunt setup
./node_modules/.bin/bower install

./node_modules/.bin/grunt cljsbuild-prod
./node_modules/.bin/grunt prepare-release
cp build/Release/nodelucene.node builds/app/node_modules
cp -r node_modules/{sqlite3,leveldown} builds/app/node_modules
./node_modules/.bin/grunt release-linux

cp --no-dereference $HOME/installprefix/lib/lib*.so* builds/zest-v*/zest-linux-x64/resources
cp --no-dereference $HOME/installprefix/lib/x86_64-linux-gnu/lib*.so* builds/zest-v*/zest-linux-x64/resources
cp --no-dereference /usr/lib/x86_64-linux-gnu/libboost*.so* builds/zest-v*/zest-linux-x64/resources
cp --no-dereference /usr/lib/x86_64-linux-gnu/libleveldb*.so* builds/zest-v*/zest-linux-x64/resources
cp --no-dereference /usr/lib/x86_64-linux-gnu/libxerces*.so* builds/zest-v*/zest-linux-x64/resources
cp --no-dereference /usr/lib/x86_64-linux-gnu/libicuuc*.so* builds/zest-v*/zest-linux-x64/resources
cp --no-dereference /usr/lib/x86_64-linux-gnu/libicui18n*.so* builds/zest-v*/zest-linux-x64/resources
cp --no-dereference /usr/lib/x86_64-linux-gnu/libicudata*.so* builds/zest-v*/zest-linux-x64/resources
cp --no-dereference /usr/lib/libsnappy*.so* builds/zest-v*/zest-linux-x64/resources
cp sogrep-src/{extractor,sogrep} builds/zest-v*/zest-linux-x64/resources
cp nodelucene/searcher builds/zest-v*/zest-linux-x64/resources
cd builds/zest-v*
mkdir zest-linux-x64/resources/sqlite_score
cd ../..
cp zest_score.sqlext builds/zest-v*/zest-linux-x64/resources/sqlite_score

cd builds/zest-v*/zest-linux-x64
ln -s resources/liblucene++* .
ln -s resources/libicu* .
cd ..
mv zest-linux-x64 `basename $PWD`
tar -czvf `basename $PWD`-linux-x64.tar.gz `basename $PWD`

mv `basename $PWD`-linux-x64.tar.gz $CIRCLE_ARTIFACTS
62 changes: 62 additions & 0 deletions scripts/build_circle_deps.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#!/bin/bash

cd $HOME
mkdir -p $HOME/installprefix/lib/pkgconfig

if [ ! -d $HOME/installprefix/include/rapidjson ]; then
git clone https://github.com/miloyip/rapidjson.git
cd rapidjson
git checkout v1.0.2
mkdir -p $HOME/installprefix/include
cp -r include/rapidjson $HOME/installprefix/include
cd ..
fi

if [ ! -d "$HOME/LucenePlusPlus" ]; then
git clone https://github.com/jkozera/LucenePlusPlus.git
cd LucenePlusPlus
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX:PATH=$HOME/installprefix
make install
else
cd LucenePlusPlus/build
fi
make install
cp liblucene++*.pc $HOME/installprefix/lib/pkgconfig
cd ../..

if [ ! -d "$HOME/libarchive" ]; then
git clone https://github.com/libarchive/libarchive.git
cd libarchive
git checkout 884f82a93ee5eb932b1e0fb74b6893708a43dc6d
mkdir -p zest_build/installprefix
cd zest_build
cmake .. -DENABLE_OPENSSL=OFF -DCMAKE_INSTALL_PREFIX:PATH=$HOME/installprefix
else
cd libarchive/zest_build
fi
make install
cd ../..

if [ ! -d "$HOME/node-sqlite3" ]; then
git clone https://github.com/jkozera/node-sqlite3.git
cd node-sqlite3
npm install
cd deps
tar -zxvf sqlite-autoconf-3090100.tar.gz
cd ../..
fi

if [ ! -d "$HOME/patchelf-0.9" ]; then
wget https://github.com/NixOS/patchelf/archive/0.9.tar.gz
tar -zxvf 0.9.tar.gz
cd patchelf-0.9
./bootstrap.sh
./configure
make
cd ..
fi

~/patchelf-0.9/src/patchelf --set-rpath '$ORIGIN/resources:$ORIGIN' installprefix/lib/x86_64-linux-gnu/liblucene++.so
~/patchelf-0.9/src/patchelf --set-rpath '$ORIGIN/resources:$ORIGIN' installprefix/lib/x86_64-linux-gnu/liblucene++-contrib.so
4 changes: 3 additions & 1 deletion sogrep-src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.3)
cmake_minimum_required(VERSION 2.8.12)
project(sogrep)

# from https://cmake.org/pipermail/cmake/2008-January/019321.html
Expand Down Expand Up @@ -53,6 +53,8 @@ target_include_directories(
PUBLIC
"/usr/local/include"
${XERCES_INCLUDE_DIRS}
# For rapidjson from Circle CI:
"/home/ubuntu/installprefix/include"
)
target_compile_options(
sogrep
Expand Down
2 changes: 1 addition & 1 deletion src/cljs/zest/settings.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@
(defn top-tags []
(let [fs (.require js/window "fs")
path (.require js/window "path")
filename (.join (.-__dirname js/window) "sotags.json")]
filename (.join path (.-__dirname js/window) "sotags.json")]
(.parse js/JSON (.readFileSync fs filename "utf8"))))

(def user-tags (reagent/atom []))
Expand Down

0 comments on commit 483ba59

Please sign in to comment.