@@ -4,8 +4,8 @@ set(CMAKE_CXX_STANDARD 17)
44
55find_program (CCACHE_FOUND ccache)
66if (CCACHE_FOUND)
7- set_property (GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
8- set_property (GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
7+ set_property (GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
8+ set_property (GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
99endif (CCACHE_FOUND)
1010
1111set (mylibs ${CMAKE_DL_LIBS} pthread m)
@@ -15,146 +15,146 @@ set(CMAKE_SKIP_RPATH FALSE)
1515set (CMAKE_SKIP_BUILD_RPATH FALSE )
1616
1717if ((APPLE OR CMAKE_C_COMPILER_ID STREQUAL "Clang" ) AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 14)
18- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-deprecated-non-prototype" )
18+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-deprecated-non-prototype" )
1919endif ()
2020
2121if (APPLE )
22- set (CMAKE_BUILD_RPATH @executable_path/.)
22+ set (CMAKE_BUILD_RPATH @executable_path/.)
2323else ()
24- set (CMAKE_BUILD_RPATH $ORIGIN)
24+ set (CMAKE_BUILD_RPATH $ORIGIN)
2525endif (APPLE )
2626
2727set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGC_NO_MUTEX" )
2828
2929if (MSVC OR CMAKE_HOST_WIN32 OR CMAKE_GENERATOR_TOOLSET STREQUAL "ClangCL" )
30- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W3 /D_CRT_SECURE_NO_WARNINGS /wd4267 /wd4996" )
31- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /EHs /D_CRT_SECURE_NO_WARNINGS /wd4267 /wd4996" )
32- if (NOT CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM" )
33- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17" )
34- else ()
35- # use strict floating point mode and not fast, as some 0.0 become eps in GDX files in fast mode for Intel clang
36- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fp:precise -Wno-microsoft-include" )
37- endif ()
38- if (CMAKE_C_COMPILER_ID STREQUAL "Clang" )
39- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-variable" )
40- endif ()
41- set (mylibs "" )
30+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W3 /D_CRT_SECURE_NO_WARNINGS /wd4267 /wd4996" )
31+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /EHs /D_CRT_SECURE_NO_WARNINGS /wd4267 /wd4996" )
32+ if (NOT CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM" )
33+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17" )
34+ else ()
35+ # use strict floating point mode and not fast, as some 0.0 become eps in GDX files in fast mode for Intel clang
36+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fp:precise -Wno-microsoft-include" )
37+ endif ()
38+ if (CMAKE_C_COMPILER_ID STREQUAL "Clang" )
39+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-variable" )
40+ endif ()
41+ set (mylibs "" )
4242endif ()
4343
4444if (UNIX )
45- # -fsanitize=undefined -fno-inline
46- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wreturn-type -Wmissing-declarations -Wno-unknown-pragmas -pedantic -Wextra -Wno-unused-parameter -Wno-deprecated-copy -Wno-cast-function-type" )
47- #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wconversion -funsigned-char") # aggressive signage warnings
48- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DZ_HAVE_UNISTD_H" )
49- if (NOT APPLE AND NOT CMAKE_C_COMPILER_ID STREQUAL "Clang" )
50- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat-truncation=0" )
51- endif ()
52- # strictly handle alignment and structure padding around flexible arrays (only newer compilers)
53- if ((CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16) OR
54- (CMAKE_CXX_COMPILER_ID MATCHES "GCC" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13))
55- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstrict-flex-arrays=3" )
56- endif ()
57- # ADD common hardening features on Linux
58- if (CMAKE_SYSTEM_NAME MATCHES "Linux" )
59- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 " )
60- add_link_options (LINKER:-z,defs LINKER:-z,now LINKER:-z,relro LINKER:-z,noexecstack)
61- endif ()
45+ # -fsanitize=undefined -fno-inline
46+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wreturn-type -Wmissing-declarations -Wno-unknown-pragmas -pedantic -Wextra -Wno-unused-parameter -Wno-deprecated-copy -Wno-cast-function-type" )
47+ #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wconversion -funsigned-char") # aggressive signage warnings
48+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DZ_HAVE_UNISTD_H" )
49+ if (NOT APPLE AND NOT CMAKE_C_COMPILER_ID STREQUAL "Clang" )
50+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat-truncation=0" )
51+ endif ()
52+ # strictly handle alignment and structure padding around flexible arrays (only newer compilers)
53+ if ((CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 16) OR
54+ (CMAKE_CXX_COMPILER_ID MATCHES "GCC" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 13))
55+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstrict-flex-arrays=3" )
56+ endif ()
57+ # ADD common hardening features on Linux
58+ if (CMAKE_SYSTEM_NAME MATCHES "Linux" )
59+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 " )
60+ add_link_options (LINKER:-z,defs LINKER:-z,now LINKER:-z,relro LINKER:-z,noexecstack)
61+ endif ()
6262endif (UNIX )
6363
6464include (base-units.cmake)
6565
6666set (zlib-units
67- # ZLIB modules
68- # missing? run in project root: git clone https://github.com/madler/zlib zlib
69- zlib/adler32.c zlib/compress.c zlib/crc32.c zlib/deflate.c zlib/gzclose.c zlib/gzlib.c zlib/gzread.c
70- zlib/gzwrite.c zlib/infback.c zlib/inffast.c zlib/inflate.c zlib/inftrees.c zlib/trees.c zlib/uncompr.c
71- zlib/zutil.c
67+ # ZLIB modules
68+ # missing? run in project root: git clone https://github.com/madler/zlib zlib
69+ zlib/adler32.c zlib/compress.c zlib/crc32.c zlib/deflate.c zlib/gzclose.c zlib/gzlib.c zlib/gzread.c
70+ zlib/gzwrite.c zlib/infback.c zlib/inffast.c zlib/inflate.c zlib/inftrees.c zlib/trees.c zlib/uncompr.c
71+ zlib/zutil.c
7272)
7373
7474set (gdx-core
75- # P3 runtime library
76- src/rtl/dtoaLoc.h
77- src/rtl/dtoaLoc.c
78- src/rtl/p3io.h
79- src/rtl/p3io.cpp
80- src/rtl/p3utils.h
81- src/rtl/p3utils.cpp
82- src/rtl/sysutils_p3.h
83- src/rtl/sysutils_p3.cpp
84- src/rtl/p3platform.h
85- src/rtl/p3platform.cpp
86- src/rtl/math_p3.h
87- src/rtl/math_p3.cpp
88-
89- # gdlib essential units
90- src/gdlib/gmsstrm.cpp
91- src/gdlib/gmsstrm.h
92- src/gdlib/utils.h
93- src/gdlib/utils.cpp
94- src/gdlib/strutilx.h
95- src/gdlib/strutilx.cpp
96- src/gdlib/strindexbuf.h
97-
98- # GDX specific units
99- src/gxfile.h
100- src/gxfile.cpp
101- src/gdx.h
102-
103- ${zlib-units}
75+ # P3 runtime library
76+ src/rtl/dtoaLoc.h
77+ src/rtl/dtoaLoc.c
78+ src/rtl/p3io.hpp
79+ src/rtl/p3io.cpp
80+ src/rtl/p3utils.hpp
81+ src/rtl/p3utils.cpp
82+ src/rtl/sysutils_p3.hpp
83+ src/rtl/sysutils_p3.cpp
84+ src/rtl/p3platform.hpp
85+ src/rtl/p3platform.cpp
86+ src/rtl/math_p3.hpp
87+ src/rtl/math_p3.cpp
88+
89+ # gdlib essential units
90+ src/gdlib/gmsstrm.cpp
91+ src/gdlib/gmsstrm.hpp
92+ src/gdlib/utils.hpp
93+ src/gdlib/utils.cpp
94+ src/gdlib/strutilx.hpp
95+ src/gdlib/strutilx.cpp
96+ src/gdlib/strindexbuf.hpp
97+
98+ # GDX specific units
99+ src/gxfile.hpp
100+ src/gxfile.cpp
101+ src/gdx.hpp
102+
103+ ${zlib-units}
104104)
105105
106106set (test -deps
107- # runtime library
108- src/rtl/p3library.cpp
109- src/rtl/p3library.h
110- src/rtl/stdthread.cpp
111- src/rtl/stdthread.h
112-
113- # global
114- src/global /gmslibname.cpp
115- src/global /gmslibname.h
116-
117- # gdlib
118- src/gdlib/charmaps.cpp
119- src/gdlib/charmaps.h
120- src/gdlib/gmacro.cpp
121- src/gdlib/gmacro.h
122- src/gdlib/gmsheapnew.cpp
123- src/gdlib/gmsheapnew.h
124- src/gdlib/gmsonly.h
125- src/gdlib/gmsonly.cpp
126- src/gdlib/obfuscatestr.cpp
127- src/gdlib/obfuscatestr.h
128- src/gdlib/strhash.h
129- src/gdlib/strhash.cpp
130- src/gdlib/xcompress.cpp
131- src/gdlib/xcompress.h
107+ # runtime library
108+ src/rtl/p3library.cpp
109+ src/rtl/p3library.hpp
110+ src/rtl/stdthread.cpp
111+ src/rtl/stdthread.hpp
112+
113+ # global
114+ src/global /gmslibname.cpp
115+ src/global /gmslibname.hpp
116+
117+ # gdlib
118+ src/gdlib/charmaps.cpp
119+ src/gdlib/charmaps.hpp
120+ src/gdlib/gmacro.cpp
121+ src/gdlib/gmacro.hpp
122+ src/gdlib/gmsheapnew.cpp
123+ src/gdlib/gmsheapnew.hpp
124+ src/gdlib/gmsonly.hpp
125+ src/gdlib/gmsonly.cpp
126+ src/gdlib/obfuscatestr.cpp
127+ src/gdlib/obfuscatestr.hpp
128+ src/gdlib/strhash.hpp
129+ src/gdlib/strhash.cpp
130+ src/gdlib/xcompress.cpp
131+ src/gdlib/xcompress.hpp
132132)
133133
134134set (tests
135- src/tests/doctestmain.cpp
136-
137- src/tests/gdxtests.h
138- src/tests/gdxtests.cpp
139- src/tests/gxfiletests.cpp
140-
141- src/tests/gdlib/datastoragetests.cpp
142- src/tests/gdlib/glookuptests.cpp
143- src/tests/gdlib/gmacrotests.cpp
144- src/tests/gdlib/gmsdatatests.cpp
145- src/tests/gdlib/gmsheapnewtests.cpp
146- src/tests/gdlib/gmsobjtests.cpp
147- src/tests/gdlib/gmsstrmtests.cpp
148- src/tests/gdlib/obfuscatestrtests.cpp
149- src/tests/gdlib/strhashtests.cpp
150- src/tests/gdlib/strutilxtests.cpp
151- src/tests/gdlib/utilstests.cpp
152- src/tests/gdlib/xcompresstests.cpp
153-
154- src/tests/rtl/p3iotests.cpp
155- src/tests/rtl/p3utilstests.cpp
156- src/tests/rtl/stdthreadtests.cpp
157- src/tests/rtl/sysutilsp3tests.cpp
135+ src/tests/doctestmain.cpp
136+
137+ src/tests/gdxtests.hpp
138+ src/tests/gdxtests.cpp
139+ src/tests/gxfiletests.cpp
140+
141+ src/tests/gdlib/datastoragetests.cpp
142+ src/tests/gdlib/glookuptests.cpp
143+ src/tests/gdlib/gmacrotests.cpp
144+ src/tests/gdlib/gmsdatatests.cpp
145+ src/tests/gdlib/gmsheapnewtests.cpp
146+ src/tests/gdlib/gmsobjtests.cpp
147+ src/tests/gdlib/gmsstrmtests.cpp
148+ src/tests/gdlib/obfuscatestrtests.cpp
149+ src/tests/gdlib/strhashtests.cpp
150+ src/tests/gdlib/strutilxtests.cpp
151+ src/tests/gdlib/utilstests.cpp
152+ src/tests/gdlib/xcompresstests.cpp
153+
154+ src/tests/rtl/p3iotests.cpp
155+ src/tests/rtl/p3utilstests.cpp
156+ src/tests/rtl/stdthreadtests.cpp
157+ src/tests/rtl/sysutilsp3tests.cpp
158158)
159159
160160set (inc-dirs zlib src generated )
0 commit comments