Commit Graph

21 Commits

Author SHA1 Message Date
Alessandro Portale
5acecd4ef9 WebAssembly: Base Settings handling on Core::PagedSettings
Change-Id: If28afd8046367eb1b8b12e54d2dae4235dbc821f
Reviewed-by: hjk <hjk@qt.io>
2023-05-19 09:55:30 +00:00
Jarek Kobus
a0f6e8dc04 Utils: Rename qtcprocess.{cpp,h} -> process.{cpp,h}
Follows QtcProcess -> Process rename.

Change-Id: I97235a9a40cb7fd52944515b7ab878d96528f919
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-05-04 05:52:26 +00:00
Jarek Kobus
470c95c94b Utils: Rename QtcProcess -> Process
Task-number: QTCREATORBUG-29102
Change-Id: Ibc264f9db6a32206e4097766ee3f7d0b35225a5c
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
2023-05-04 05:52:16 +00:00
Alessandro Portale
aa72b039da WebAssembly: Reorganize plugin tests
Change-Id: I1e2be15877ef4d1adc8355b820c1b8fc333d6409
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-02-15 11:00:49 +00:00
Kai Köhne
56baf8c058 Remove GPL-3.0+ from license identifiers
Since we also license under GPL-3.0 WITH Qt-GPL-exception-1.0,
this applies only to a hypothetical newer version of GPL, that doesn't
exist yet. If such a version emerges, we can still decide to relicense...

While at it, replace (deprecated) GPL-3.0 with more explicit GPL-3.0-only

Change was done by running

  find . -type f -exec perl -pi -e "s/LicenseRef-Qt-Commercial OR GPL-3.0\+ OR GPL-3.0 WITH Qt-GPL-exception-1.0/LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0/g" {} \;

Change-Id: I5097e6ce8d10233993ee30d7e25120e2659eb10b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-01-06 11:15:13 +00:00
Lucie Gérard
a7956df3ca Use SPDX license identifiers
Replace the current license disclaimer in files by
a SPDX-License-Identifier.

Task-number: QTBUG-67283
Change-Id: I708fd1f9f2b73d60f57cc3568646929117825813
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-08-26 12:27:18 +00:00
David Schulz
153ff77a6b Utils: use cleaned stdout all over the place again
Amends 5ee880ce5e

Change-Id: Ie0202db7d8455372c3697087d9571db6706b45a1
Reviewed-by: hjk <hjk@qt.io>
2022-06-17 13:04:42 +00:00
hjk
652b9844e6 Utils: FilePathify Environment::{ap,pre}pendOrSetPath etc
Change-Id: Idfa5ec247337570936b0236cab9d3a5669792ca0
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-11-10 07:26:31 +00:00
Eike Ziller
3d4d7c7e14 Merge remote-tracking branch 'origin/5.0'
Conflicts:
	src/plugins/clangtools/clangtoolssettings.cpp
	src/plugins/clangtools/executableinfo.cpp
	src/plugins/clangtools/executableinfo.h

Change-Id: Id8caf63e3e594792467d3447870086bd2d8f73b9
2021-09-13 17:03:55 +02:00
Alessandro Portale
7d3f59c995 WebAssembly: Fix emcc execution for some emsdk versions on Linux
In order to run emcc 1.39.8 on Ubuntu 20.04., the PATH environment
variable must not be empty, because the emsdk wrapper scripts depend on
it.

Therefore, in WebAssemblyEmSdk::version(), we don't start anymore with a
clean environment bu with the related device environment.

Task-number: QTCREATORBUG-26199
Change-Id: I8b7603ef8126ebaef0fa4ed9e254296623c945e9
Reviewed-by: hjk <hjk@qt.io>
2021-09-10 15:34:24 +00:00
Eike Ziller
8e51295959 Merge remote-tracking branch 'origin/5.0'
Conflicts:
	src/libs/utils/processreaper.cpp
	src/plugins/clangcodemodel/clangmodelmanagersupport.cpp
	src/plugins/cmakeprojectmanager/cmakeprocess.cpp

Change-Id: Ie248bcb02a80f3e02ab19d73033ce2ba31e7fd83
2021-09-07 11:05:40 +02:00
Christian Stenger
87784a2e01 WebAssembly: Fix test expectation
Amends cd2e164b7d.

Change-Id: I41d2e68aea45c1b4f18f93d5103a6fd560b06c68
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2021-09-07 08:05:54 +00:00
Alessandro Portale
cd2e164b7d WebAssembly: Append EMSDK_PYTHON to environment PATH
The wrapper scripts of emscripten 1.39.8 (required version for Qt 5.15)
do not actively use the python interpreter which -at least on Windows-
is found under EMSDK_PYTHON.

This change appends the parent path of EMSDK_PYTHON to the environment's
PATH to make wrapper scripts (e.g. emcc.bat) work.

Fixes: QTCREATORBUG-26199
Change-Id: Icbc89f6d930f1c5ac5e4e6ac919383cfdd1b913b
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2021-09-01 16:34:24 +00:00
hjk
7c28c4f744 Utils: Introduce a FilePath constructor from char arrays
Similar to QT_RESTRICTED_CAST_FROM_ASCII to avoid the need for
decorations in user code.

At the same time, drop some convenience constructors and functions
in CommandLine and Icon essentially serving the same purpose.

Change-Id: Ida4e5ac19c2da0a4298a97b2a8e1511d56bbb79d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-08-17 05:34:10 +00:00
hjk
a78665ede7 Utils: Rename FilePath::searchOnDevice to searchInDirectories
Makes it a bit clearer that there's no magic path use or similar
beyond this point.

Change-Id: I86c06850d16bf777db05ad23b540d8096926c059
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-08-12 08:29:09 +00:00
hjk
d06c670504 Utils: Introduce a FilePath::withNewPath() convenience method
It's effectively the mirrored version of onDevice() with an
equally odd name which is a bit more straightforward to use
in some cases.

Change-Id: I0cfedeb58871a857c93144e2a0d734bad1bcd887
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-07-16 11:13:14 +00:00
hjk
2451ba9213 Wasm: Test windows and linux parsing simultaneously
Change-Id: I25e562258125157b07d1fc1a950b5207abbf5d69
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2021-07-09 05:55:08 +00:00
hjk
b998ad621b Wasm: Some steps towards making it work on docker
To start using the docker bits the emsdk location has to
be specified manually in the path selector as
docker://<id-of-image>/<path/to/emsdk>

Change-Id: I70c6e7a334762953c3931105b7f697c608523159
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2021-07-08 10:28:56 +00:00
Alessandro Portale
105d65b19c WebAssembly: Always use system environment to run em++ -dumpversion
On Windows, we would start with a clean environment just with the emsdk
environment added in order to run "em++.bat -dumpversion".

That fails for some emsdk versions for reasons unknown. Let's reduce OS-
specific special casing and instead use the system environment as basis
everywhere.

Change-Id: I143fe6193528390e17ee0a62936ad03d2c5a109e
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2021-03-30 13:59:03 +00:00
Alessandro Portale
dc8edcefba WebAssembly: Fix WebAssemblyPlugin::testEmSdkEnvParsing for non-Windows
The ':' in "c:\" got confused with the paths list separator ':' on
Linux/Mac.

Let's add a non-Windows specific emsdk_env output to be parsed by the
autotest.

Change-Id: I900e13065237bc0d68eca5582b286177e90cc0af
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-11-24 12:18:06 +00:00
Alessandro Portale
b057ea1ab8 WebAssembly: Revamp Emscripten SDK registration and toolchain handling
Qt Creator's ability to register Emscripten toolchains depended on an
SDK being activated "globally", and on the presence of the ~/.emscripten
file. Qt Creator would parse that file in order to determine the
location of the compiler and the necessary environment variables that
have to be set.

As of recently, the Emscripten SDK does neither activate gobally
anymore, nor is the ~/.emscripten generated. This change here addresses
the new situation in a couple of ways:

- Instead of trying to silently detect everything, add a UI
(IOptionsPageWidget) that lets the user select the Emscripten SDK root.
- Instead of parsing the ~/.emscripten file, parse the output of the
emsdk_env tool to determine the toolchain environment
(ToolChain::addToEnvironment). The parsing is cached. A test for the
parsing is included.
- Instead of registering the underlying clang as compiler, register the
emcc/em++ wrapper scripts, which are (also as of recently) compatible
with Qt Creator's way of determining gcc's predefined macros and built-
in header paths.

One Emscripten SDK is registered globally in Qt Creator. When changing
that, the previous Emscripten toolchains are removed, the new ones are
registered and the kit are "fixed" to use those.

On startup, an InfoBar entry is shown if Qt for Webassembly kits exist
and no Emscripten toolchains are present. That's the case for first-time
use after installing Qt for Webassembly via Qt SDK installer. The
InfoBar entry opens up the IOptionsPageWidget.

Qt 5.15.0 for WebAssembly and Emscripten SDK 1.39.0 are the minimum
supported versions. The new UI will show warnings accordingly.

Task-number: QTCREATORBUG-24811
Fixes: QTCREATORBUG-24822
Fixes: QTCREATORBUG-24814
Fixes: QTCREATORBUG-23741
Fixes: QTCREATORBUG-23561
Fixes: QTCREATORBUG-23160
Fixes: QTCREATORBUG-23126
Change-Id: I017c61586b17e815bb20a90e3f305a6bf705da36
Reviewed-by: hjk <hjk@qt.io>
2020-11-16 07:39:20 +00:00