55 Commits

Author SHA1 Message Date
Zeex
289cfeb126 v3.10.10 2020-02-08 19:04:51 +06:00
Zeex
0f2bd0b282 v3.10.9 2018-09-29 07:17:20 +06:00
Zeex
641169e053 Add CTest wrappers for tests
With CTest it's much easier to run the tests via command line -
no need to specify path to compiler, etc. Simply run this command
(from the build directory):

ctest -C Debug

or

ctest -C Debug -R pcode.*

to run tests matching a regexp (it will run pcode_test_example in
this case)).

It is still possible to use the run_tests.py script directly.
2018-09-02 09:33:03 +06:00
Zeex
2f04b12acd Merge branch 'master' into dev 2018-08-13 05:20:36 +06:00
Zeex
44312b9653 Fix build errors on Linux 2018-08-11 23:50:58 +06:00
Zeex
357cd6f43b Fix build errors on Linux 2018-08-11 23:41:46 +06:00
Zeex
038bf419ff Add support for runtime compiler tests 2018-08-11 23:12:16 +06:00
Zeex
0a574d5f25 Remove CTest and add a top-level CMakeLists.txt 2018-08-11 20:03:37 +06:00
Zeex
018f1f65f3 Squash-and-Merge 3.10.8 (#352)
* debug info for index tagmm warnings

This commit makes the compiler display debug information for "index" tag mismatch warnings.

* Fix #317

* Partially revert #c325ca3e028388ae6f934df2a4057229d24d021e to strip spaces in strings again.

* Redetect error 49, and make `deprecated` auto-insert spaces.

* Allow line continuations in single-line comments only when they are followed by another comment:

It is quite annoying to get an error for commenting out a define using:

//
// #define LONG_MACRO\
//             did span \
//             multiple lines
//

* v3.10.8

* Remove multi-line comment test.

* Fix test 217 again...

* Yet again fixing the tests...

* Cast error on mac.

* Release 3.10.8

* Sorry for messing up the commit history...  I'm trying to figure out releases.
2018-08-05 15:06:53 +01:00
Zeex
eb0159d662 v3.10.7 2018-04-24 15:26:17 +06:00
Daniel_Cortez
8b3583e7b5 Replace the hashmap implementation with a hashtable by Mattias Gustavsson 2018-01-07 02:35:08 +07:00
Zeex
c4e15a032a Remove /J from MSVC compile flags
https://msdn.microsoft.com/en-us/library/0d294k5z.aspx

It looks like we don't need it. The 'char' type is signed on other
platforms, so why should it be unsigned on Windows? Besides, its
includion in add_definitions() prevented RC from compiling libpawn.rc
with Visual Studio 2017's CMake tools.
2018-01-05 19:48:45 +06:00
Zeex
c325ca3e02 Implement more straightforward line continuation ('\\') behavior
* Allow line continuation in single line comments

  Other languages allow this:

  // this is totally a single \
  line comment

  For example C++, at least GCC, Visual C++. I don't see why it
  should be forbidden.

* Don't insert \a symbols to mark

  Because we now don't need to check if there are '\\' in comments
  we no longer have to mark their positions with '\a' symbols.

* Don't trim leading space after '\\'

  Again, this is how other languages do it and it seems to be more
  intuitive. If you don't want spaces just don't indent your lines.

  new s[] = "see \
  this?"
2018-01-04 17:38:13 +06:00
Zeex
7ea961990c v3.10.6 2017-12-31 18:43:32 +06:00
Zeex
4db5ecba41 v3.10.5 2017-12-31 01:31:00 +06:00
Zeex
7414a56d7f Fix CMake warning regarding use of @rpath on macOS
CMake Warning (dev):
  Policy CMP0042 is not set: MACOSX_RPATH is enabled by default.  Run "cmake
  --help-policy CMP0042" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  MACOSX_RPATH is not specified for the following targets:

   pawnc

This warning is for project developers.  Use -Wno-dev to suppress it.
2017-12-30 19:37:25 +06:00
Zeex
8fe5558d7e Remove amx.c from pawndisasm's sources
We don't need the whole AMX in order to compile pawndisasm, only a handful of
alignment functions (amx_AlignXXX) that are used in amxdbg.c. Just copy those
functions to amxdbg.

As a bonus, we don't have to fix compile warnings in amx.c now. (maybe somebody
will fix them some day in a distant future...)
2017-12-30 19:26:06 +06:00
Zeex
4f12093788 Update macOS package name (darwin -> macos) 2017-12-30 15:30:25 +06:00
Zeex
7d19fb9ee0 v3.10.4 2017-11-05 18:32:17 +06:00
Zeex
b962246ad5 Fix build errors on MSVC 2013 2017-10-28 04:39:34 +06:00
Zeex
237d89e7e4 Merge branch 'performance' of https://github.com/maddinat0r/pawn into performance 2017-10-24 08:38:47 +06:00
Zeex
36d5eed854 v3.10.3 2017-10-23 08:05:40 +06:00
Alex Martin
0138726698 add symbol lookup cache 2017-10-19 21:08:20 +02:00
Zeex
ad6bc39dc1 Remove ARCHIVE files from package
This created an unnecessary pawnc.lib file in the lib folder. It's
not required to use the compiler.

See #166.
2017-05-01 12:37:14 +06:00
Zeex
ca5a957bcd Make it build on Android 2017-02-11 19:39:57 +06:00
Zeex
8495645423 v3.10.2 2017-02-04 13:28:10 +06:00
Daniel-Cortez
ea1823f53a Minor fixes/adjustments for the build script 2017-02-01 22:50:57 +07:00
Zeex
95f19b7284 v3.10.1 2017-01-22 17:31:32 +06:00
Zeex
f96f3b978b Include build number in version and __PawnBuild constant
__PawnBuild holds the currnt build number. This allows you to detect
which compiler version is used more precisely.

It will be set to 1 on next release and incremented on each subsequent
release.

Closes #132.
2017-01-22 02:24:28 +06:00
Zeex
9a98259251 Add headers to CMakeLists.txt 2017-01-21 14:33:18 +06:00
Zeex
09b97686cf Remove '.samp' from version string
Now that we have a different minor version that seems unnecessary.
2015-04-12 22:21:13 +06:00
Zeex
9191803370 Set version to 3.10
Now it's consistent with the __Pawn constant (0x030A == 3.10).
2015-04-12 21:25:10 +06:00
Zeex
add2c2b7e7 Generate packages with CPack 2015-04-12 19:57:03 +06:00
Zeex
a33ebc7b4b Add install rules
Now it's possible to run 'make install' to install binaries on your
system.

This also should resolve the deafult.inc & rpath problem (#54) as
CMake seems to remove rpath from binaries during installation.
2015-04-12 19:56:59 +06:00
Zeex
13f98d5934 CMake cleanup 2015-04-07 19:26:10 +06:00
Zeex
aef6d6d252 Fix CMake warning (COPY_ONLY -> COPYONLY) 2015-04-06 17:07:58 +06:00
Zeex
19ced18553 Fix MinGW link warning 2015-04-06 17:00:27 +06:00
Zeex
867f6902f3 Remove string compression
This removes all scpack-packed strings and moves normal strings from
.scp files to corresponding .c files. The code responding for packing
and unpacking is gone as well.

If you have enough memory to run a SA-MP server you most likely have
more than enough of it to not worry about saving a few additional KBs
of text. Besides, these strings were kind of hard to navigate / edit,
and you could easily forget to regenerate them with scpack (though it
could be automated).
2015-04-06 16:38:08 +06:00
Zeex
0a146f7344 Set project language to C
check_function_exists() tried to use a C++ compiler for some odd reason,
so I've set the language to C explicitly. This shouldn't hurt in theory,
since we don't use C++.
2015-04-04 23:25:41 +06:00
Zeex
b57210fe80 Detect strlcpy() and strlcat() via cmake 2015-04-04 23:21:40 +06:00
Zeex
6e8319d4f4 Don't strip symbols
Really, why do this?
2015-04-04 18:14:32 +06:00
Zeex
f9fde04a1a Don't suppress compile warnings 2015-04-04 17:54:02 +06:00
Oscar Broman
8afb73c00c make it compile on OS X 2015-04-04 17:54:00 +06:00
Zeex
8de7022753 Fix comment 2015-04-04 16:09:40 +06:00
Zeex
d77e75b67f Append git commit hash to version string
Closes #25
2015-04-04 15:56:15 +06:00
Zeex
c36b495c36 Modernize CMakeLists.txt 2015-04-02 15:21:08 +06:00
Zeex
dda49fbd08 Fix Linux build error 2014-08-29 23:23:51 +07:00
Zeex
030be737b5 Make pawndisasm display file names and line numbers 2014-08-29 23:11:15 +07:00
Zeex
6cbc4203b5 Backport pawndisasm from Pawn 3.3.3875 2014-08-29 22:45:16 +07:00
Zeex
4671b59337 Add /J to MSVC compile flags
http://msdn.microsoft.com/en-us/library/0d294k5z.aspx

/J (Default char Type Is unsigned)

Changes the default char type from signed char to unsigned char, and
the char type is zero-extended when it is widened to an int type.
2014-04-06 14:17:30 +07:00