Commit Graph

108 Commits

Author SHA1 Message Date
arcum42
5c60f66890
Fix various cmake issues (#3352)
* Change the minimum cmake version to a range. Uses the new policies of the newer versions if you are on them, taking care of CMP0054.

* Grab a newer version of FindHarfBuzz.cmake from Webkit that fixes the cmake warning the earlier one was giving.

* Add in -ftime-trace as an option on build.sh.

* Precompile PrecompiledHeader.h if you are using cmake 3.16+ and GCC. (Currently disabled on clang due to compilation issues.)

* Check if target_precompile_headers exists rather than by version.

Co-authored-by: scribam <scribam@users.noreply.github.com>
2020-05-07 08:32:34 -07:00
orbea
84d090e2fd
spu2-x: Make portaudio an optional dependency. (#3110)
* spu2-x: Make portaudio an optional dependency.

v2: Fix crash in the audio settings with SDL1 and without portaudio.

* cmake: Add PORTAUDIO_API to disable portaudio support.
2020-05-07 08:31:48 -07:00
Hamish
e2d8992310 GSdx: Enable OpenCL on Linux (#3099) 2019-09-11 17:59:33 -07:00
arcum42
74e6c437f2 Add option not to build dev9ghzdrk. 2019-08-23 15:31:46 -07:00
arcum42
fc35de02f2
build.sh and cmake plugin code cleanup (#2953)
* Refactor build.sh. Restructure finding plugins. Remove legacy code. Add --clean-plugins option. Document --no-trans option.

Don't do setcap if dev9ghzdrk isn't being built. List dependencies if they are missing. Remove code related to zerospu2, and misc plugins we aren't building. Minor message changes.
2019-07-04 19:49:11 -07:00
lightningterror
6e3f41f164 build.sh: correct some tab/space issues left by arcum from previous commit. 2018-09-10 05:54:15 +02:00
arcum42
d8e6ba4274 Add a new option to build.sh to not generate translations while building the project. 2018-09-05 21:38:38 -07:00
Gregory Hainaut
6be52e435d build.sh: avoid duplicate on clang-tidy analysis 2017-05-03 12:03:38 +02:00
Gregory Hainaut
28e1f87d9e build.sh: reduce the number of define for cppcheck analysis + add cdvd giga 2017-01-22 21:10:40 +01:00
Gregory Hainaut
93471d46df build: workaround to detect freetype on my Debian system
I don't know if recent Cmake/Debian work better.
2017-01-07 13:49:56 +01:00
np511
f55f3b94a1 Removes LTO warnings and sets -flto=number of cores. 2017-01-03 15:45:24 -05:00
np511
b9d57843eb Adds PGO support. Profile data is stored in a folder called profile
in the top-level source directory. The build folder should NOT be
transferred between computers when PGO is used, though I don't
see why anyone would be doing so anyway.

Also adds support for PGO and LTO to the build.sh script.
2016-12-10 11:26:16 +01:00
Gregory Hainaut
c9db1c6c4b vtune: plug PCSX2 core + add missing profiling (VU/VIF/TLB)
Doesn't fully work yet
* Unknown stack frame
* Outside any known module

Potential root cause:
* Nvidia driver
* VU code as ebp is required for emulation so likely no frame
2016-11-28 19:07:04 +01:00
Gregory Hainaut
d58e43edbf gsdx linux: plug vtune as Windows 2016-11-19 17:00:32 +01:00
Jonathan Li
86951aff9a build.sh: Fix for FreeBSD
"--jobs" isn't present in FreeBSD's make, but "-j" is.
2016-10-27 22:02:43 +01:00
Gregory Hainaut
cac822f785 build.sh: also use ninja for coverity build 2016-09-07 18:58:31 +02:00
Gregory Hainaut
16f12bcfa5 build.sh: small improvement
Fix undefined variable in cpp check
Print current job on clang-tidy (ease replay of a single file)
Keep jobs order, ease diff between multiple run
2016-08-24 22:55:37 +02:00
Gregory Hainaut
2ec0f26122 build.sh:clang-tidy: drop the remaining ASM file 2016-08-24 22:55:37 +02:00
Nicolas Hillegeer
b2984cd3d0 build.sh: don't use -m option for parallel
My reasoning was off. The -m flag does avoid the clang-tidy startup
 cost (which isn't large), but it also increases tail latency because it
 allows a straggler command to run much longer. Suppose that many heavy
 .cpp files are bundled into one clang-tidy invocation.

Bench from Greg
with -m
./build.sh --dbg --clean --no-simd --clang-tidy  3886.45s user 12.04s system 1066% cpu 6:05.71 total
without
./build.sh --dbg --clean --no-simd --clang-tidy  4297.51s user 41.70s system 1497% cpu 4:49.86 total
2016-08-21 14:29:49 +02:00
Nicolas Hillegeer
b45adb6e6a build.sh: parallelize clang-tidy
Also suppress spurious output from command -v.

[ci skip]
2016-08-21 13:29:08 +02:00
Gregory Hainaut
fc996951cb build.sh: use $flags instead of "$flags"
Otherwise bash add tick around it and cmake doesn't understand what happen
2016-08-20 19:05:23 +02:00
Gregory Hainaut
2ae133e993 build.sh: use clang when clang-tidy is enabled
avoid tons of warning that options XXX isn't supported
2016-08-20 19:01:14 +02:00
Nicolas Hillegeer
57090e8ec5 build.sh: simplify and semi-modernize
1. All POSIX shells support $(...) syntax [1], including /bin/sh. shellcheck
   warns about it.
2. [[ won't work in /bin/sh [2], so use [ everywhere. I wonder why it worked
   now, perhaps the test was running on a system where /bin/sh -> /bin/bash.
3. In POSIX sh, string indexing is undefined. [SC2039]. Unfortunately, this
   means we require a subprocess: https://wiki.ubuntu.com/DashAsBinSh. Very
   ugly.
4. In POSIX sh, arrays are undefined. We seem to use $flags as an array
   after constructing it by string concatenation. I tried to verify that
   this has the same effect as just passing the quoted string in bash:

      bash-3.2$ flags="-DCMAKE_GOOK"
      bash-3.2$ flags="$flags -DCMAKE_MOARMA"
      bash-3.2$ flags="$flags -DCMAKE_URURURUR"
      bash-3.2$ ./argv $flags
      0: ./argv
      1: -DCMAKE_GOOK
      2: -DCMAKE_MOARMA
      3: -DCMAKE_URURURUR
      bash-3.2$ ./argv "${flags[@]}"
      0: ./argv
      1: -DCMAKE_GOOK -DCMAKE_MOARMA -DCMAKE_URURURUR
      bash-3.2$ ./argv "$flags"
      0: ./argv
      1: -DCMAKE_GOOK -DCMAKE_MOARMA -DCMAKE_URURURUR
      bash-3.2$

5. Enable exit on unknown variable (-u). All variables should be known,
   otherwise we have an error in the script. shellcheck doesn't warn so I
   think it's fine.

Apart from shellcheck(1), I also ran checkbashisms(1). The latter only
reported that "command -v" might not be available in other shells.
Apparently only ash(1) doesn't understand it.

NOTE: Why are we even trying to support pre-Mavericks (Darwin < 13) OSX? We
don't even support the most modern OSX (El Capitan) fully yet. OSX upgrades
are free and generally don't leave old machines behind. Most machines made
after 2009 can upgrade to El Capitan, AFAIK. I also believe that systems
that have all the utilities and libraries necessary to build PCSX2 will have
/bin/bash >= 3.x.

NOTE 2: Does cmake/ninja generate the same type of output in
compile_commands.json?

[1]: http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_03
[2]: http://serverfault.com/a/52050
2016-08-20 13:15:57 +02:00
Gregory Hainaut
cdfbff9af0 build.sh: use command -v instead of which 2016-08-19 18:21:42 +02:00
Gregory Hainaut
d87452ed21 build.sh: allow to replace make by ninja to speed up the build system
Quick benchmark. GCC debug mode
Full build: 6 second better, it can 2 additional cores :)
make : ./build.sh --dbg --clean  213.25s user 22.35s system 881% cpu 26.739 total
ninja: ./build.sh --dbg --clean  203.94s user 18.31s system 1085% cpu 20.474 total

No change build:: 1 second better :)
 make -C build_dbg -j 16 install  1.51s user 0.34s system 206% cpu 0.898 total
ninja -C build_dbg -j 16 install  0.05s user 0.02s system 98% cpu 0.074 total
2016-08-18 22:45:46 +02:00
Gregory Hainaut
63ec74ebea build: remove most of the bashism
Various distribution still ship the true old shell to win 1 second at startup.
Besides, bash syntax is no way better

Not fully tested, some bashism might remain for some options but at least you can
do a standard build
2016-08-14 22:29:12 +02:00
Gregory Hainaut
64e8e02f54 cmake: add Intel's ICC compiler support
Full of compilations errors and warnings
2016-07-28 10:36:40 +02:00
Gregory Hainaut
8ca212d142 linux: example how to use clang tidy 2016-03-25 08:23:50 +01:00
Gregory Hainaut
1db5e0c0bf cmake: create a prof build type
It is the same as a release build but with the debug symbol and the
frame pointer.
2016-02-21 16:24:47 +01:00
Gregory Hainaut
3329bc1748 linux: drop wx2.8 support. Only 3.0 is supported
Close #1152
2016-01-30 12:48:35 +01:00
Gregory Hainaut
d623453451 build.sh: automatically configure wx-config on debian system
It is easier to alternate between 32/64 bits build
2016-01-16 14:33:49 +01:00
Gregory Hainaut
c73d626757 build.sh: separate release/dev/dbg into separated directory
Avoid useless recompilation
2016-01-13 08:58:50 +01:00
Gregory Hainaut
c8da280a19 Merge branch 'build_with_spaces' of git://github.com/EmperorArthur/pcsx2 into EmperorArthur-build_with_spaces
Conflicts:
	build.sh
2016-01-13 08:14:46 +01:00
Arthur Moore
6698c5760b Quote all uses of coverity_dir 2015-12-17 19:47:48 -05:00
Arthur Moore
9f87fb16a2 Quote all uses of the build directory 2015-12-17 19:45:23 -05:00
Juha Laukkanen
ade57809c1 Darwin/OSX - bash doesn't understand '|&' - alt format for stderr redirect pipe. 2015-12-02 05:00:55 +02:00
Arthur Moore
5252edcd0e Properly handle spaces in the build path
Ex: /usr/local/Console Emulators/pcsx2/
2015-11-30 01:01:11 -05:00
Juha Laukkanen
be720b96c1 Added OSX Darwin v13+ cmake files. 2015-11-17 19:25:12 +02:00
Gregory Hainaut
2ef9b732e2 build: reduce the scope of cppcheck
Faster for GSdx analysis
2015-11-08 21:37:03 +01:00
Gregory Hainaut
d4e088b726 build: add clang-tidy support
Slow and generate a 100k log!

Better to fix cppcheck/coverity/gcc(/clang) report first.

Anyway, clang-tidy incorporates clang-modernize (port code
to use some C++11 features)
2015-11-06 23:01:58 +01:00
Gregory Hainaut
fa487474d2 build: s/\t/ / 2015-11-05 18:24:36 +01:00
Gregory Hainaut
41081e1b40 build: add a nice cppcheck option 2015-11-05 09:49:06 +01:00
Gregory Hainaut
ffdc914c71 linux: SDL2
For older distribution you can still use SDL1.2

./build.sh ... --sdl12 ...
or
cmake ... -DSDL2_API=FALSE ...

Note: there is a hard dependency between WxWidget and SDL. If Wx is linked against
SDL1.2, you must use SDL1.2. Crashes are expected otherwise.
2015-10-21 22:35:38 +02:00
Gregory Hainaut
8b2de15096 build: add an option to build a coverity DB 2015-09-10 13:40:45 +02:00
Gregory Hainaut
cb6e8a7d6a gsdx-linux: Don't enable EGL by default
I was hoping that EGL become a standard much more faster. Currently it is an useless dep
so let's disable it by default.
2015-05-11 15:33:40 +02:00
Gregory Hainaut
335695bd0e purge GLES from GSdx !
mobile will use vulkan (or any new API) anyway
2015-05-01 20:02:17 +02:00
Gregory Hainaut
14d4b3fe7a build.sh: add a -no-cross-multilib option
(only for developers)
2015-01-06 21:54:55 +01:00
Miguel A. Colón Vélez
7c766e66ad Add the option of cross compiling by default in build.sh.
Revert this or use useCross=0 for normal behaviour.
2015-01-04 01:32:04 -05:00
Miguel A. Colón Vélez
8440d263cd Respect the CC and CXX environment variables when cross building. 2015-01-04 00:56:47 -05:00
Miguel A. Colón Vélez
e23e2ac327 Rely on clang autodetection instead of user input. 2015-01-03 22:07:16 -05:00