Commit ccd605d3 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

build assets w/ cmake

parent cadddd49
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -85,12 +85,20 @@ set(FNORDMETRIC_SOURCES
    ../src/fnordmetric/sql/runtime/tablescan.cc
    ../src/fnordmetric/sql/svalue.cc)


set_source_files_properties(assets PROPERTIES GENERATED true)
add_custom_target(fnordmetric-assets COMMAND ASSETS_FILE=${CMAKE_BINARY_DIR}/fnordmetric-assets.cc ./assets.sh WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})

#add_executable(fnordmetric-cli ${FNORDMETRIC_SOURCES} ../src/fnordmetric/cli.cc)
#target_link_libraries(fnordmetric-cli m)
#target_link_libraries(fnordmetric-cli ${CMAKE_THREAD_LIBS_INIT})
#install(TARGETS fnordmetric-cli DESTINATION bin)

add_executable(fnordmetric-server ${FNORDMETRIC_SOURCES} ../src/fnordmetric/fnordmetric-server.cc)
add_executable(fnordmetric-server
    ${FNORDMETRIC_SOURCES}
    ../src/fnordmetric/fnordmetric-server.cc
    ${CMAKE_BINARY_DIR}/fnordmetric-assets.cc)
add_dependencies(fnordmetric-server fnordmetric-assets)
target_link_libraries(fnordmetric-server m)
target_link_libraries(fnordmetric-server ${CMAKE_THREAD_LIBS_INIT})
install(TARGETS fnordmetric-server DESTINATION bin)
+35 −52
Original line number Diff line number Diff line
#/bin/bash
set -e

mkdir -p stage/src
echo "#include <util/assets.h>" > stage/src/asset_bundle.cc

asset_file() {
  (cd ../../.. && cat $@ | xxd -i)
  echo "};"
}

asset_uniq() {
  echo "static const unsigned char __$1_data[] = {"
}

asset_name() {
  echo "static fnordmetric::util::Assets::AssetFile __$1(\"$2\", __$1_data, sizeof(__$1_data));"
};

(
  asset_uniq "fnordmetric_js_fnordmetric_js"
  asset_file "fnordmetric-js/fnordmetric.js"
  asset_name "fnordmetric_js_fnordmetric_js" "fnordmetric-js/fnordmetric.js"
) >> stage/src/asset_bundle.cc

(
  asset_uniq "fnordmetric_webui_fnordmetric_webui_css"
  asset_file "fnordmetric-webui/fnordmetric-webui.css"
  asset_name "fnordmetric_webui_fnordmetric_webui_css" "fnordmetric-webui/fnordmetric-webui.css"
) >> stage/src/asset_bundle.cc

(
  asset_uniq "fnordmetric_webui_fnordmetric_webui_html"
  asset_file "fnordmetric-webui/fnordmetric-webui.html"
  asset_name "fnordmetric_webui_fnordmetric_webui_html" "fnordmetric-webui/fnordmetric-webui.html"
) >> stage/src/asset_bundle.cc

(
  asset_uniq "fnordmetric_webui_fnordmetric_webui_js"
  asset_file "fnordmetric-webui/fnordmetric-webui.js"
  asset_name "fnordmetric_webui_fnordmetric_webui_js" "fnordmetric-webui/fnordmetric-webui.js"
) >> stage/src/asset_bundle.cc

(
  asset_uniq "fnordmetric_webui_fnordmetric_favicon_ico"
  asset_file "fnordmetric-webui/fnordmetric-favicon.ico"
  asset_name "fnordmetric_webui_fnordmetric_favicon_ico" "fnordmetric-webui/fnordmetric-favicon.ico"
) >> stage/src/asset_bundle.cc

(
  asset_uniq "fnordmetric_webui_fontawesome_woff"
  asset_file "fnordmetric-webui/fontawesome.woff"
  asset_name "fnordmetric_webui_fontawesome_woff" "fnordmetric-webui/fontawesome.woff"
) >> stage/src/asset_bundle.cc
source $(dirname $0)/../src/libfnord/fnord-base/assets.sh

assets_init

# fnord/3rdparty/codemirror.js

#(
#  asset_uniq "fnordmetric_webui_fnordmetric_webui_css"
#  asset_file "fnordmetric-webui/fnordmetric-webui.css"
#  asset_name "fnordmetric_webui_fnordmetric_webui_css" "fnordmetric-webui/fnordmetric-webui.css"
#) >> stage/src/asset_bundle.cc
#
#(
#  asset_uniq "fnordmetric_webui_fnordmetric_webui_html"
#  asset_file "fnordmetric-webui/fnordmetric-webui.html"
#  asset_name "fnordmetric_webui_fnordmetric_webui_html" "fnordmetric-webui/fnordmetric-webui.html"
#) >> stage/src/asset_bundle.cc
#
#(
#  asset_uniq "fnordmetric_webui_fnordmetric_webui_js"
#  asset_file "fnordmetric-webui/fnordmetric-webui.js"
#  asset_name "fnordmetric_webui_fnordmetric_webui_js" "fnordmetric-webui/fnordmetric-webui.js"
#) >> stage/src/asset_bundle.cc
#
#(
#  asset_uniq "fnordmetric_webui_fnordmetric_favicon_ico"
#  asset_file "fnordmetric-webui/fnordmetric-favicon.ico"
#  asset_name "fnordmetric_webui_fnordmetric_favicon_ico" "fnordmetric-webui/fnordmetric-favicon.ico"
#) >> stage/src/asset_bundle.cc
#
#(
#  asset_uniq "fnordmetric_webui_fontawesome_woff"
#  asset_file "fnordmetric-webui/fontawesome.woff"
#  asset_name "fnordmetric_webui_fontawesome_woff" "fnordmetric-webui/fontawesome.woff"
#) >> stage/src/asset_bundle.cc

cmake/fubar.gen.cc

0 → 100644
+1 −0
Original line number Diff line number Diff line
#include <util/assets.h>
+22 −0
Original line number Diff line number Diff line
#/bin/bash
set -e

assets_init() {
  if [[ -z $ASSETS_FILE ]]; then
    echo "ASSETS_FILE env var must be set"
    exit 1
  fi;

  echo "#include <fnord-base/assets.h>" > $ASSETS_FILE
}

assets_add() {
  uniq="blah"

  (
    echo "static const unsigned char __${uniq}_data[] = {"
    (cat $1 | xxd -i)
    echo "};"
    echo "static fnordmetric::util::Assets::AssetFile __${uniq}(\"$2\", __${uniq}_data, sizeof(__${uniq}_data));"
  ) >> $assets_file
}