Merge pull request #3744 from liushuyu/master

travis: use cmake in official repository
This commit is contained in:
Weiyi Wang 2018-05-19 18:24:20 +03:00 committed by GitHub
commit 45aa95093c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 20 deletions

View File

@ -16,12 +16,8 @@ apt-get install -y build-essential wget git python-launchpadlib ccache
qt5-qmltooling-plugins 5.9.3-0ubuntu1 bionic \ qt5-qmltooling-plugins 5.9.3-0ubuntu1 bionic \
qtdeclarative5-dev 5.9.3-0ubuntu1 bionic \ qtdeclarative5-dev 5.9.3-0ubuntu1 bionic \
qtmultimedia5-dev 5.9.3-0ubuntu3 bionic \ qtmultimedia5-dev 5.9.3-0ubuntu3 bionic \
libicu57 57.1-6ubuntu0.2 bionic libicu57 57.1-6ubuntu0.2 bionic \
cmake 3.10.2-1ubuntu2 bionic
# Get a recent version of CMake
wget https://cmake.org/files/v3.10/cmake-3.10.1-Linux-x86_64.sh
echo y | sh cmake-3.10.1-Linux-x86_64.sh --prefix=cmake
export PATH=/citra/cmake/cmake-3.10.1-Linux-x86_64/bin:$PATH
mkdir build && cd build mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ -DCITRA_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ -DCITRA_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON

View File

@ -1,30 +1,42 @@
#!/usr/bin/python #!/usr/bin/python
import sys, re, subprocess import sys
import re
import subprocess
from launchpadlib.launchpad import Launchpad from launchpadlib.launchpad import Launchpad
if sys.version_info[0] > 2:
xrange = range
cachedir = '/.launchpadlib/cache/' cachedir = '/.launchpadlib/cache/'
launchpad = Launchpad.login_anonymously('grab build info', 'production', cachedir, version='devel') launchpad = Launchpad.login_anonymously(
'grab build info', 'production', cachedir, version='devel')
processed_packages = [] processed_packages = []
deb_file_list = [] deb_file_list = []
def get_url(pkg, distro): def get_url(pkg, distro):
build_link = launchpad.archives.getByReference(reference='ubuntu').getPublishedBinaries(binary_name=pkg[0], distro_arch_series='https://api.launchpad.net/devel/ubuntu/'+distro+'/amd64', version=pkg[1], exact_match=True, order_by_date=True).entries[0]['build_link'] build_ref = launchpad.archives.getByReference(reference='ubuntu').getPublishedBinaries(
deb_name = pkg[0] + '_' + pkg[1] + '_amd64.deb' binary_name=pkg[0], distro_arch_series='https://api.launchpad.net/devel/ubuntu/' + distro + '/amd64', version=pkg[1], exact_match=True, order_by_date=True).entries[0]
build_link = build_ref['build_link']
deb_name = '{}_{}_{}.deb'.format(pkg[0], pkg[1], 'amd64' if build_ref['architecture_specific'] else 'all')
deb_link = build_link + '/+files/' + deb_name deb_link = build_link + '/+files/' + deb_name
return [deb_link, deb_name] return [deb_link, deb_name]
def list_dependencies(deb_file): def list_dependencies(deb_file):
t=subprocess.check_output(['bash', '-c', 'dpkg -I ' + deb_file + ' | grep -oP "^ Depends\: \K.*$"']) t = subprocess.check_output(
deps=[i.strip() for i in t.split(',')] ['bash', '-c', '(dpkg -I {} | grep -oP "^ Depends\: \K.*$") || true'.format(deb_file)])
deps = [i.strip() for i in t.split(',')]
equals_re = re.compile(r'^(.*) \(= (.*)\)$') equals_re = re.compile(r'^(.*) \(= (.*)\)$')
return [equals_re.sub(r'\1=\2', i).split('=') for i in filter(equals_re.match, deps)] return [equals_re.sub(r'\1=\2', i).split('=') for i in filter(equals_re.match, deps)]
def get_package(pkg, distro): def get_package(pkg, distro):
if pkg in processed_packages: if pkg in processed_packages:
return return
print 'Getting ' + pkg[0] + '...' print('Getting {}...'.format(pkg[0]))
url = get_url(pkg, distro) url = get_url(pkg, distro)
subprocess.check_call(['wget', '--quiet', url[0], '-O', url[1]]) subprocess.check_call(['wget', '--quiet', url[0], '-O', url[1]])
for dep in list_dependencies(url[1]): for dep in list_dependencies(url[1]):
@ -32,7 +44,9 @@ def get_package(pkg, distro):
processed_packages.append(pkg) processed_packages.append(pkg)
deb_file_list.append('./' + url[1]) deb_file_list.append('./' + url[1])
for i in xrange(1, len(sys.argv), 3): for i in xrange(1, len(sys.argv), 3):
get_package([sys.argv[i], sys.argv[i + 1]], sys.argv[i + 2]) get_package([sys.argv[i], sys.argv[i + 1]], sys.argv[i + 2])
subprocess.check_call(['apt-get', 'install', '-y', '--force-yes'] + deb_file_list) subprocess.check_call(
['apt-get', 'install', '-y', '--force-yes'] + deb_file_list)

View File

@ -3,12 +3,7 @@
cd /citra cd /citra
apt-get update apt-get update
apt-get install -y build-essential libsdl2-dev qtbase5-dev libqt5opengl5-dev qtmultimedia5-dev qttools5-dev qttools5-dev-tools wget git ccache apt-get install -y build-essential libsdl2-dev qtbase5-dev libqt5opengl5-dev qtmultimedia5-dev qttools5-dev qttools5-dev-tools wget git ccache cmake
# Get a recent version of CMake
wget https://cmake.org/files/v3.10/cmake-3.10.1-Linux-x86_64.sh
echo y | sh cmake-3.10.1-Linux-x86_64.sh --prefix=cmake
export PATH=/citra/cmake/cmake-3.10.1-Linux-x86_64/bin:$PATH
mkdir build && cd build mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ -DENABLE_QT_TRANSLATION=ON -DCITRA_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ -DENABLE_QT_TRANSLATION=ON -DCITRA_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON