7

はじめに

そのため、私を含む 2 人のチーム (つまり、私たちの努力はあなたほど専門的ではありませんでした) とCloudObserverでASLを理解するために数日間過ごしました。

Windows と Mac OS で ASL をコンパイルする方法を発見しました。

私たちは、Mac OS X と Windows で完全に動作する ASL に関するビジュアル/グラフィカル GUI の簡単な チュートリアルをいくつか作成しました。そのため、少なくとも単純な UI とダイアログの作成には Adob​​e ソース ライブラリが機能することがわかりました。

Linuxで動作するように試み始めたよりも。

まず古いasl_1.0.43_net_setup.shを修正して、Linux で ASL のコンパイルを開始しました。ここに私たちのコードがあります:

#!/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 をコンパイルしました。悲しいことにそれだけです。Adam リーダーだけでなく、GUI が必要なため、これはまったく役に立ちません。

そのため、Windows の libasl_widgets.dll に相当するもの、libasl_widgets_dev.a が必要でした。引用しますASL/platform_release/jamroot.jam

ASL はサポートしていますが、APL は gcc cygwin をサポートしていません。APL でサポートされているツールセットは msvc と darwin のみです

そのため、adobe は Linux をサポートしていると主張しています。それはただ悲しいです!方法 2 悲しい! それで、ミッションコードプロジェクトを見つけました。

それは 2006 年の日付で、ブースト 1.33.1 だったので残念でした。ここも悲しかった

ミッションで使用する外部ライブラリはここに保管されています。

これにより、それらがビルドに保持され、前提条件をインストールするための魔法のビルド スクリプト/ルールを用意する必要がないことを意味します。

つまり、ライブラリ用の個別のビルド ファイルはありません。ライブラリはプロジェクトにマージされます。ただし、すべてのプロジェクトは bjam を介してコンパイルされ、プロジェクト内では Boost、ASL、およびその他のライブラリが project に細分されます。これは、各サブプロジェクトが順番にコンパイルされ、実行可能ファイルまたはライブラリにコンパイルされることを意味します。

しかし、ASL に本当に必要だったのは、GUI 中心ではない小さなクロスプラットフォームのオープンソース プロジェクトの単純なニーズに対応する単純な GUI だけでした。必要なのは、ボタン、スケール (別名スライダー、別名トラックバー)、およびテキスト入力フィールドだけでした。また、将来の開発のためのいくつかのスケール オプション。そこで私たちは考えました - ミッションコード プロジェクトから ASL をできる限り強制しよう。

最初に、毎日使用する最新の Ubuntu 11 および 11 と OpenSuse (Mono for VMware リリースはこちら) を試しました。しかし、それは常に大量のエラーで失敗しました。そこで、プロジェクト時代の OS に適した、より早い段階でコンパイルしようと考えました。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 <deque>
  #include <map>
+ #include <vector>

  #include <adobe/name.hpp>
  #include <adobe/any_regular.hpp>
diff -crB original/external/adobe/source/xstring.cpp modified/external/adobe/source/xstring.cpp
*** original/external/adobe/source/xstring.cpp  2011-06-25 08:21:46.000000000 +0400
--- modified/external/adobe/source/xstring.cpp  2011-06-25 08:24:10.000000000 +0400
***************
*** 331,337 ****
  {
      typedef std::iterator_traits<store_iterator>::difference_type   difference_type;

!     difference_type range_size(boost::size(range));

      if (!range_size) return glossary_m.end();

--- 331,337 ----
  {
      typedef std::iterator_traits<store_iterator>::difference_type   difference_type;

!     difference_type range_size(boost::distance(range));

      if (!range_size) return glossary_m.end();

ウィジェットを使用して ASL をコンパイルする Missioncode がありました。ウィジェットは完全にミッション コード作成者によって作成されたので、動作するかどうかの保証はありません..しかし、完全なミッション コード トランクをコンパイルし (また、missionPhoto というアプリケーションも)、アプリは問題なく動作しました。

その完全な ASL でコードをコンパイルしようとしましたが、ウィンドウにあった ASL API は、ウィンドウにあった ASL では動作しないように見えました...多かれ少なかれまったく同じです。=(

終わらない

しかし、多くの経験を持つ親愛なる SO ユーザーのいずれかが、MissionCode と現在の ASL にある ASL を見て、Linux 用に動作する ASL 1.0.43 を私たち全員に提供してくれることを期待しています。

4

1 に答える 1

4


apl の現在のバージョンは、Linux 用のビルドをサポートしていないようです。ドキュメントに記載されています:http://stlab.adobe.com/asl_readme.html#Building_for_Mac.2C_.2ANIX。また、apl ディレクトリ構造でも確認できます。$APL_ROOT/windows および $APL_ROOT/macintosh ディレクトリがありますが、Linux 関連のディレクトリ (gtk、qt など) はありません。
「ミッション コード」プロジェクトについて: 古いバージョンの adobe ライブラリを使用しています (asl の分離はありません)。およびaplなど)。以前のバージョンの adobe libs が Linux のビルドをサポートしていた可能性があります (または、ミッション コード プログラマーが自分で gtk のサポートを追加した可能性があります)。
理論的には、win や macos に実装されているものと同様の機能を実装することで、新しいプラットフォームのサポートを追加することができます (現在のバージョンでは、このコードはそれぞれ約 6...8k 行です)。簡単すぎる。
とにかく、がんばって!:)

于 2011-06-29T22:11:14.733 に答える