Итак, мы провели несколько дней со всей нашей командой, состоящей из двух человек, включая меня (это означает, что наши усилия не были такими профессиональными, как ваши) по адресу CloudObserver пытается разобраться с ASL .
Мы узнали , как скомпилировать ASL для Windows и Mac OS.
Мы создали визуальный / графический интерфейс простых руководств по ASL, которые отлично работали с Mac OS X и Windows, поэтому мы увидели, что библиотеки исходного кода Adobe работают для создания хотя бы простых пользовательских интерфейсов и диалогов.
Затем мы начали пытаться сделать он работает в Linux.
Мы начали с компиляции ASL в Linux, сначала исправив устаревшую asl_1.0.43_net_setup.sh . Вот наш код:
#!/bin/bash
ASL_DISTRO_NAME=asl_1.0.43.tgz
ASL_NAME=source_release
APL_DISTRO_NAME=apl_1.0.43.tgz
APL_VERSION=1.0.43
APL_NAME=platform_release
ASL_DISTRO_SITE=surfnet.dl.sourceforge.net
BOOST_NAME=boost_1_44_0
BOOST_VERSION=1.44.0
BOOST_DISTRO_NAME="$BOOST_NAME".tar.gz
#-L protects against redirects
CURL_CMD=curl\ -L
INTEL_TBB_NAME=tbb30_018oss
INTEL_TBB_DISTRO_NAME="$INTEL_TBB_NAME"_src.tgz
# Run a command, and echo before doing so. Also checks the exit
# status and quits if there was an error.
#
# WARNING : Does *not* work when the command uses the redirection operator (>)
#
echo_run ()
{
echo "$@"
"$@"
r=$?
if test $r -ne 0 ; then
exit $r
fi
}
test_path()
{
hash $1 1>/dev/null 2>/dev/null
}
WD=`pwd`
MACHINE=`uname`
HERE=`dirname $0`
cd $HERE
if [ "$1" != "" ]; then
ASL_DISTRO_SITE="$1"
fi
#http://surfnet.dl.sourceforge.net/project/adobe-source/adobe-source/1.0.43/asl_1.0.43.tgz
if [ ! -e $ASL_DISTRO_NAME ]; then
echo_run ${CURL_CMD} http://$ASL_DISTRO_SITE/project/adobe-source/adobe-source/$APL_VERSION/$ASL_DISTRO_NAME -o $ASL_DISTRO_NAME
fi
if [ ! -e $APL_DISTRO_NAME ]; then
echo_run ${CURL_CMD} http://$ASL_DISTRO_SITE/project/adobe-source/adobe-source/$APL_VERSION/$APL_DISTRO_NAME -o $APL_DISTRO_NAME
fi
if [ ! -e $BOOST_DISTRO_NAME ]; then
echo_run ${CURL_CMD} http://$ASL_DISTRO_SITE/project/boost/boost/$BOOST_VERSION/$BOOST_DISTRO_NAME -o $BOOST_DISTRO_NAME
fi
if [ ! -e $INTEL_TBB_DISTRO_NAME ]; then
echo_run ${CURL_CMD} http://www.threadingbuildingblocks.org/uploads/78/154/3.0/$INTEL_TBB_DISTRO_NAME -o $INTEL_TBB_DISTRO_NAME
fi
if [ ! -d adobe_root ]; then
echo_run mkdir adobe_root
fi
if [ ! -d adobe_root/adobe_source_libraries ]; then
echo_run tar -xzf $ASL_DISTRO_NAME
echo_run mv $ASL_NAME adobe_root/adobe_source_libraries
fi
if [ ! -d adobe_root/adobe_platform_libraries ]; then
echo_run tar -xzf $APL_DISTRO_NAME
echo_run mv $APL_NAME adobe_root/adobe_platform_libraries
fi
if [ ! -e adobe_root/boost_libraries/INSTALL ]; then
# move the boost distro into place
echo_run tar -xzf $BOOST_DISTRO_NAME
echo_run rm -rf adobe_root/boost_libraries
echo_run mv $BOOST_NAME adobe_root/boost_libraries
fi
if [ ! -e adobe_root/intel_tbb_libraries/README ]; then
# move the intel_tbb distro into place
echo_run tar -xzf $INTEL_TBB_DISTRO_NAME
echo_run rm -rf adobe_root/intel_tbb_libraries
echo_run mv $INTEL_TBB_NAME adobe_root/intel_tbb_libraries
fi
cd $HERE
echo_run adobe_root/adobe_source_libraries/tools/patch_boost.sh
if [[ $MACHINE == "Darwin" ]]
then
cd adobe_root/adobe_platform_libraries
else
cd adobe_root/adobe_source_libraries
fi
echo_run ../adobe_source_libraries/tools/build.sh
echo Done!
exit 0
Итак, мы скомпилировали libasl_dev.a. Печально только это. Это совершенно бесполезно для нас, потому что мы хотим иметь графический интерфейс , а не только читатель Адама.
Так что нам нужен был какой-то аналог libasl_widgets.dll в Windows - libasl_widgets_dev.a. Я цитирую ASL / platform_release / jamroot.jam
APL не поддерживает gcc cygwin, хотя ASL поддерживает. Только поддерживаемые наборы инструментов для APL это msvc и darwin
Итак, Adobe утверждает, что поддерживает Linux. Это просто грустно! Путь 2 Грустный! Итак, мы нашли проект с кодом миссии .
Он был датирован 2006 годом и повышал уровень 1.33.1, так что это было печально. Также было грустно в здесь
Внешние библиотеки, которые используются
Это удерживает их в нашей сборке, и означает, что нам не обязательно иметь волшебные сценарии сборки / правила, чтобы получить предварительные требования установлены.
Это означает, что у них нет отдельных файлов сборки для библиотек - библиотеки объединены в проект. Но весь проект компилируется через bjam, а внутри проекта Boost, ASL и другие библиотеки подразделяются на проекты . Это означает, что каждый из этих подпроектов компилируется по порядку и в исполняемый файл или в библиотеку.
Но все, что нам действительно нужно от ASL, - это простой графический интерфейс для простых нужд небольшого кроссплатформенного проекта с открытым исходным кодом, не ориентированного на графический интерфейс. Все, что нам было нужно, это кнопка, шкала (она же слайдер, трекбар) и поле ввода текста. И еще какие-то масштабные варианты будущего развития. Итак, мы подумали - давайте как можно лучше дополнить ASL из проекта Missioncode.
Сначала мы попробовали некоторые современные Ubuntu 11 и 11 и OpenSuse (Mono для выпуска VMware из здесь ), которые мы используем каждый день. Но он постоянно выходил из строя с множеством ошибок. Мы подумали - давайте скомпилируем на более ранней, более подходящей для возраста проекта ОС. Мы начали с Ubuntu 4 и продвигались версия за версией. Он скомпилирован на 6.10 с некоторыми незначительными исправлениями, например
diff -crB original/external/adobe/adobe/basic_sheet.hpp modified/external/adobe/adobe/basic_sheet.hpp
*** original/external/adobe/adobe/basic_sheet.hpp 2011-06-25 08:21:48.000000000 +0400
--- modified/external/adobe/adobe/basic_sheet.hpp 2011-06-25 08:24:33.000000000 +0400
***************
*** 13,18 ****
--- 13,19 ----
#include
#include
у нас был код миссии, компилирующий ASL с виджетами. Виджеты были полностью созданы автором кода миссии, поэтому не было никаких гарантий, если они работают ... но у нас был скомпилирован полный ствол кода миссии (также приложение, называемое missionPhoto), и приложение работало нормально.
Мы попытались скомпилировать наш код с этим полный ASL, но оказалось, что ASL api, которые у нас были в окне, не работают на ASL, которые у нас были в окнах ... вроде как более или менее вообще. = (
Но все же есть надежда, что кто-то из вас, дорогие пользователи SO с большим опытом, посмотрели бы на ASL, который у них есть в MissionCode и на текущем ASL, и предоставили бы всем нам рабочий ASL 1.0.43 для Linux.