Skip to content

Commit 65c330a

Browse files
committed
Release version 4.1.0
1 parent efd3814 commit 65c330a

File tree

1,968 files changed

+234603
-111437
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,968 files changed

+234603
-111437
lines changed

.gitattributes

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,2 @@
11
# Set line endigs of the text files to native format
22
* text=auto
3-
4-
lib/javascript/addon/package.json text eol=lf
5-
lib/javascript/addon/package-lock.json text eol=lf

.gitignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,2 @@
11
# Exclude the .gradle directories
22
**/.gradle
3-
lib/javascript/addon/build/*
4-
lib/javascript/addon/node_modules/*

.gitmodules

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,16 @@
77
[submodule "3rdparty/PMD"]
88
path = 3rdparty/PMD
99
url = https://github.com/sed-inf-u-szeged/pmd.git
10-
[submodule "java/lib/langtools"]
11-
path = java/lib/langtools
12-
url = https://github.com/sed-inf-u-szeged/langtools.git
1310
[submodule "3rdparty/python2"]
1411
path = 3rdparty/python2
1512
url = ../cpython
1613
[submodule "3rdparty/python3"]
1714
path = 3rdparty/python3
1815
url = ../cpython
16+
[submodule "cl/LIM2Patterns/pybind11"]
17+
path = cl/LIM2Patterns/pybind11
18+
url = https://github.com/pybind/pybind11
19+
[submodule "java/lib/openjdk"]
20+
path = java/lib/openjdk
21+
url = ../openjdk
22+
ignore = dirty

3rdparty/CMakeLists.txt

Lines changed: 84 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,19 @@ file (MAKE_DIRECTORY ${COLUMBUS_3RDPARTY_INSTALL_DIR}/bin)
1010
file (MAKE_DIRECTORY ${COLUMBUS_3RDPARTY_INSTALL_DIR}/lib)
1111
file (MAKE_DIRECTORY ${COLUMBUS_3RDPARTY_INSTALL_DIR}/include)
1212

13+
# Disable warnings during building 3rdparty code
14+
if (CMAKE_SYSTEM_NAME STREQUAL Linux)
15+
add_compile_options("-w")
16+
endif()
17+
1318
########################### zlib #########################
1419

1520
ExternalProject_Add(zlib
1621
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/zlib
1722
PATCH_COMMAND git clean -x -d -f
1823
COMMAND git reset --hard
1924
COMMAND git apply --ignore-whitespace ${CMAKE_CURRENT_SOURCE_DIR}/CMake/zlib.patch
20-
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${COLUMBUS_3RDPARTY_INSTALL_DIR} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
25+
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${COLUMBUS_3RDPARTY_INSTALL_DIR} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
2126
LOG_CONFIGURE 1
2227
LOG_BUILD 1
2328
LOG_INSTALL 1
@@ -38,15 +43,22 @@ if (CMAKE_SYSTEM_NAME STREQUAL Windows)
3843
if (COLUMBUS_64BIT)
3944
set (BOOST_ADDRESS_MODEL address-model=64)
4045
endif ()
46+
set (BOOST_MSVC_TOOLSET toolset=msvc-14.1)
47+
endif ()
48+
49+
50+
if (CMAKE_SYSTEM_NAME STREQUAL Linux)
51+
set (BOOST_EXTRA_CXX_COMPILER_FLAGS cxxflags=-fPIC)
52+
set (BOOST_EXTRA_C_COMPILER_FLAGS cflags=-fPIC)
4153
endif ()
4254

4355
ExternalProject_Add(boost
4456
DEPENDS zlib
4557
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/boost
4658
BUILD_IN_SOURCE 1
4759
CONFIGURE_COMMAND ${COMMAND_PREFIX}bootstrap${SCRIPT_EXT}
48-
BUILD_COMMAND ${COMMAND_PREFIX}b2 cxxflags=-fPIC cflags=-fPIC --reconfigure --build-dir=${CMAKE_CURRENT_BINARY_DIR}/boost-prefix --prefix=${COLUMBUS_3RDPARTY_INSTALL_DIR} -j8 --with-filesystem --with-system --with-date_time --with-iostreams --with-graph --with-regex --with-thread --with-math --layout=system variant=$<$<CONFIG:Debug>:debug>$<$<CONFIG:Release>:release> runtime-link=static architecture=x86 threading=multi ${BOOST_ADDRESS_MODEL} link=static -sZLIB_INCLUDE=${COLUMBUS_3RDPARTY_INSTALL_DIR}/include -sZLIB_LIBPATH=${COLUMBUS_3RDPARTY_INSTALL_DIR}/lib -sZLIB_BINARY=z -sNO_ZLIB=0 -sNO_BZIP2=1 headers
49-
COMMAND ${COMMAND_PREFIX}b2 cxxflags=-fPIC cflags=-fPIC --reconfigure --build-dir=${CMAKE_CURRENT_BINARY_DIR}/boost-prefix --prefix=${COLUMBUS_3RDPARTY_INSTALL_DIR} -j8 --with-filesystem --with-system --with-date_time --with-iostreams --with-graph --with-regex --with-thread --with-math --layout=system variant=$<$<CONFIG:Debug>:debug>$<$<CONFIG:Release>:release> runtime-link=static architecture=x86 threading=multi ${BOOST_ADDRESS_MODEL} link=static -sZLIB_INCLUDE=${COLUMBUS_3RDPARTY_INSTALL_DIR}/include -sZLIB_LIBPATH=${COLUMBUS_3RDPARTY_INSTALL_DIR}/lib -sZLIB_BINARY=z -sNO_ZLIB=0 -sNO_BZIP2=1 install
60+
BUILD_COMMAND ${COMMAND_PREFIX}b2 ${BOOST_EXTRA_CXX_COMPILER_FLAGS} ${BOOST_EXTRA_C_COMPILER_FLAGS} ${BOOST_MSVC_TOOLSET} --reconfigure --build-dir=${CMAKE_CURRENT_BINARY_DIR}/boost-prefix --prefix=${COLUMBUS_3RDPARTY_INSTALL_DIR} -j8 --with-filesystem --with-system --with-date_time --with-iostreams --with-graph --with-regex --with-thread --with-math --layout=system variant=$<$<CONFIG:Debug>:debug>$<$<CONFIG:Release>:release> runtime-link=static architecture=x86 threading=multi ${BOOST_ADDRESS_MODEL} link=static -sZLIB_INCLUDE=${COLUMBUS_3RDPARTY_INSTALL_DIR}/include -sZLIB_LIBPATH=${COLUMBUS_3RDPARTY_INSTALL_DIR}/lib -sZLIB_BINARY=z -sNO_ZLIB=0 -sNO_BZIP2=1 headers
61+
COMMAND ${COMMAND_PREFIX}b2 ${BOOST_EXTRA_CXX_COMPILER_FLAGS} ${BOOST_EXTRA_C_COMPILER_FLAGS} ${BOOST_MSVC_TOOLSET} --reconfigure --build-dir=${CMAKE_CURRENT_BINARY_DIR}/boost-prefix --prefix=${COLUMBUS_3RDPARTY_INSTALL_DIR} -j8 --with-filesystem --with-system --with-date_time --with-iostreams --with-graph --with-regex --with-thread --with-math --layout=system variant=$<$<CONFIG:Debug>:debug>$<$<CONFIG:Release>:release> runtime-link=static architecture=x86 threading=multi ${BOOST_ADDRESS_MODEL} link=static -sZLIB_INCLUDE=${COLUMBUS_3RDPARTY_INSTALL_DIR}/include -sZLIB_LIBPATH=${COLUMBUS_3RDPARTY_INSTALL_DIR}/lib -sZLIB_BINARY=z -sNO_ZLIB=0 -sNO_BZIP2=1 install
5062
INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "No sepearate installation step is needed."
5163
LOG_CONFIGURE 1
5264
LOG_BUILD 1
@@ -88,11 +100,11 @@ endif ()
88100

89101
if (CMAKE_SYSTEM_NAME STREQUAL Linux)
90102
ExternalProject_Add( xerces-c
91-
URL http://archive.apache.org/dist/xerces/c/3/sources/xerces-c-3.1.4.tar.gz
92-
URL_HASH MD5=21bb097b711a513275379b59757cba4c
93-
BUILD_IN_SOURCE 1
103+
URL https://archive.apache.org/dist/xerces/c/3/sources/xerces-c-3.1.4.tar.gz
104+
URL_HASH MD5=21bb097b711a513275379b59757cba4c
105+
BUILD_IN_SOURCE 1
94106
CONFIGURE_COMMAND ./reconf
95-
COMMAND ./configure --disable-shared -disable-network --disable-transcoder-icu --prefix=${COLUMBUS_3RDPARTY_INSTALL_DIR}
107+
COMMAND ./configure --disable-shared -disable-network --disable-transcoder-icu --prefix=${COLUMBUS_3RDPARTY_INSTALL_DIR} --disable-dependency-tracking
96108
BUILD_COMMAND make -j8 all
97109
INSTALL_COMMAND make install
98110
LOG_DOWNLOAD 1
@@ -111,8 +123,8 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL Windows)
111123
endif ()
112124

113125
ExternalProject_Add( xerces-c
114-
URL http://archive.apache.org/dist/xerces/c/3/sources/xerces-c-3.1.4.zip
115-
URL_HASH MD5=6fcd8ec268f6bfe11d8ce2cd7d25a185
126+
URL https://archive.apache.org/dist/xerces/c/3/sources/xerces-c-3.1.4.zip
127+
URL_HASH MD5=6fcd8ec268f6bfe11d8ce2cd7d25a185
116128
BUILD_IN_SOURCE 1
117129
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E echo "No configuration is required."
118130
BUILD_COMMAND msbuild projects/Win32/VC14/xerces-all/xerces-all.sln /m /t:XercesLib "/p:Configuration=Static $<CONFIG>" /p:Platform=${VS_PLATFORM} /p:PlatformToolset=${CMAKE_VS_PLATFORM_TOOLSET}
@@ -128,13 +140,19 @@ endif ()
128140

129141
########################### PMD #########################
130142

131-
set (PMD_PACKAGE_VERSION pmd-bin-5.2.3)
143+
set (PMD_PACKAGE_VERSION pmd-bin-6.32.0)
132144
set (PMD_DIST_PACKAGE ${CMAKE_CURRENT_SOURCE_DIR}/PMD/pmd-dist/target/${PMD_PACKAGE_VERSION}.zip)
133145
set (PMD_PACKAGE ${COLUMBUS_3RDPARTY_INSTALL_DIR}/PMD.zip)
146+
if (CMAKE_SYSTEM_NAME STREQUAL Windows AND NOT COLUMBUS_64BIT)
147+
set (PMD_MAVEN_OPTS ${CMAKE_COMMAND} -E env MAVEN_OPTS=-Xss16m)
148+
endif ()
149+
if (CMAKE_SYSTEM_NAME STREQUAL Windows)
150+
set (MVNW_POSTFIX .cmd)
151+
endif ()
134152

135153
add_custom_command (
136154
OUTPUT ${PMD_PACKAGE}
137-
COMMAND mvn${MVN_POSTFIX} package -DskipTests > ${CMAKE_CURRENT_BINARY_DIR}/PMD-build.log
155+
COMMAND ${PMD_MAVEN_OPTS} ${COMMAND_PREFIX}mvnw${MVNW_POSTFIX} package -DskipTests -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -pl pmd-dist,pmd-core,pmd-java > ${CMAKE_CURRENT_BINARY_DIR}/PMD-build.log 2>&1
138156
COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_CURRENT_SOURCE_DIR}/PMD/pmd-dist/target/ ${CMAKE_COMMAND} -E remove_directory PMD
139157
COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_CURRENT_SOURCE_DIR}/PMD/pmd-dist/target/ ${CMAKE_COMMAND} -E tar xf ${PMD_DIST_PACKAGE}
140158
COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_CURRENT_SOURCE_DIR}/PMD/pmd-dist/target/ ${CMAKE_COMMAND} -E rename ${PMD_PACKAGE_VERSION} PMD
@@ -151,14 +169,26 @@ add_custom_target (
151169

152170
set_target_properties (PMD PROPERTIES FOLDER "ExternalProjectTargets/pmd")
153171

172+
173+
########################### SpotBugs #########################
174+
175+
ExternalProject_Add( spotbugs
176+
URL https://repo.maven.apache.org/maven2/com/github/spotbugs/spotbugs/4.2.2/spotbugs-4.2.2.tgz
177+
CONFIGURE_COMMAND ""
178+
BUILD_COMMAND ""
179+
INSTALL_COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_CURRENT_BINARY_DIR}/spotbugs-prefix/src ${CMAKE_COMMAND} -E tar cf ${COLUMBUS_3RDPARTY_INSTALL_DIR}/spotbugs.zip --format=zip spotbugs
180+
LOG_DOWNLOAD 1
181+
LOG_INSTALL 1
182+
)
183+
184+
154185
########################### python27 #########################
155186
if (CMAKE_SYSTEM_NAME STREQUAL Linux)
156187

157188
ExternalProject_Add( python2.7
158189
DEPENDS zlib
159190
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/python2
160-
BUILD_IN_SOURCE 1
161-
CONFIGURE_COMMAND ./configure --enable-optimizations --disable-shared --prefix=${COLUMBUS_3RDPARTY_INSTALL_DIR}
191+
CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/python2/configure --enable-optimizations --disable-shared --prefix=${COLUMBUS_3RDPARTY_INSTALL_DIR}
162192
BUILD_COMMAND make -j8 altbininstall inclinstall
163193
INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "No install step is required as the build step installs the library."
164194
LOG_CONFIGURE 1
@@ -186,14 +216,13 @@ elseif (CMAKE_SYSTEM_NAME STREQUAL Windows)
186216

187217
endif ()
188218

189-
########################### python36 #########################
219+
########################### python38 #########################
190220
if (CMAKE_SYSTEM_NAME STREQUAL Linux)
191221

192-
ExternalProject_Add( python3.6
222+
ExternalProject_Add( python3.8
193223
DEPENDS zlib
194224
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/python3
195-
BUILD_IN_SOURCE 1
196-
CONFIGURE_COMMAND ./configure --enable-optimizations --disable-shared --prefix=${COLUMBUS_3RDPARTY_INSTALL_DIR} --without-pymalloc
225+
CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/python3/configure --enable-optimizations --disable-shared --prefix=${COLUMBUS_3RDPARTY_INSTALL_DIR} --without-pymalloc
197226
BUILD_COMMAND make -j8 altbininstall inclinstall
198227
INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "No install step is required as the build step installs the library."
199228
LOG_CONFIGURE 1
@@ -202,17 +231,51 @@ if (CMAKE_SYSTEM_NAME STREQUAL Linux)
202231
)
203232
elseif (CMAKE_SYSTEM_NAME STREQUAL Windows)
204233

205-
ExternalProject_Add( python3.6
234+
ExternalProject_Add( python3.8
206235
DEPENDS zlib
207236
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/python3
208237
BUILD_IN_SOURCE 1
209238
CONFIGURE_COMMAND ""
210239
BUILD_COMMAND msbuild PCbuild/pythoncore.vcxproj /m /t:Build /p:Configuration=$<CONFIG> /p:Platform=${VS_PLATFORM} /p:PlatformToolset=${CMAKE_VS_PLATFORM_TOOLSET}
211-
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory Include ${COLUMBUS_3RDPARTY_INSTALL_DIR}/include/python3.6
212-
COMMAND ${CMAKE_COMMAND} -E copy "PC/pyconfig.h" ${COLUMBUS_3RDPARTY_INSTALL_DIR}/include/python3.6/pyconfig.h
213-
COMMAND ${CMAKE_COMMAND} -E copy "PCbuild/${PYTHON_PLATFORM_NAME}/python36$<$<CONFIG:Debug>:_d>.lib" ${COLUMBUS_3RDPARTY_INSTALL_DIR}/lib/python3.6.lib
240+
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory Include ${COLUMBUS_3RDPARTY_INSTALL_DIR}/include/python3.8
241+
COMMAND ${CMAKE_COMMAND} -E copy "PC/pyconfig.h" ${COLUMBUS_3RDPARTY_INSTALL_DIR}/include/python3.8/pyconfig.h
242+
COMMAND ${CMAKE_COMMAND} -E copy "PCbuild/${PYTHON_PLATFORM_NAME}/python38$<$<CONFIG:Debug>:_d>.lib" ${COLUMBUS_3RDPARTY_INSTALL_DIR}/lib/python3.8.lib
214243
LOG_CONFIGURE 1
215244
LOG_BUILD 1
216245
LOG_INSTALL 1
217246
)
218247
endif ()
248+
249+
###################### openssl ############################
250+
251+
if (CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
252+
if (CMAKE_CL_64)
253+
set (OPENSSL_PLATFORM VC-WIN64A)
254+
else ()
255+
set (OPENSSL_PLATFORM VC-WIN32)
256+
endif ()
257+
258+
ExternalProject_Add( openssl
259+
URL https://www.openssl.org/source/openssl-1.1.0h.tar.gz
260+
CONFIGURE_COMMAND perl ../openssl/Configure --prefix=${COLUMBUS_3RDPARTY_INSTALL_DIR} --openssldir=ssl ${OPENSSL_PLATFORM} ${DEBUG_BUILD} -no-shared
261+
BUILD_COMMAND nmake
262+
INSTALL_COMMAND nmake install
263+
LOG_CONFIGURE 1
264+
LOG_BUILD 1
265+
LOG_INSTALL 1
266+
LOG_DOWNLOAD 1
267+
)
268+
269+
else ()
270+
ExternalProject_Add( openssl
271+
URL https://www.openssl.org/source/openssl-1.1.0h.tar.gz
272+
CONFIGURE_COMMAND ../openssl/config --prefix=${COLUMBUS_3RDPARTY_INSTALL_DIR} --openssldir=ssl ${DEBUG_BUILD} -no-shared
273+
BUILD_COMMAND make
274+
INSTALL_COMMAND make install
275+
LOG_CONFIGURE 1
276+
LOG_BUILD 1
277+
LOG_INSTALL 1
278+
LOG_DOWNLOAD 1
279+
)
280+
281+
endif ()

3rdparty/PMD

Submodule PMD updated 5195 files

3rdparty/boost

Submodule boost updated 229 files

3rdparty/python2

Submodule python2 updated 614 files

3rdparty/python3

Submodule python3 updated 3064 files

CMake/BuildInfo.cmake

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,11 @@
11

2-
set (BUILD_INFO_FILE ${CMAKE_BINARY_DIR}/BuildInfo.txt)
3-
set (BUILD_INFO_H_FILE ${CMAKE_BINARY_DIR}/BuildInfo.h)
4-
5-
add_custom_command (
6-
OUTPUT ${BUILD_INFO_FILE} ${BUILD_INFO_H_FILE}
7-
COMMAND git rev-parse --short HEAD > ${BUILD_INFO_FILE}
8-
COMMAND ${CMAKE_COMMAND} -DBINARY_DIR=${CMAKE_BINARY_DIR} -P ${CMAKE_MODULE_PATH}/GenerateBuildInfoH.cmake
9-
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
10-
DEPENDS ${CMAKE_SOURCE_DIR}/.git/HEAD
11-
)
2+
set (TEMP_BUILD_INFO_FILE ${CMAKE_BINARY_DIR}/BuildInfo-temp.txt)
123

134
add_custom_target (
145
generate_build_info ALL
15-
DEPENDS ${BUILD_INFO_FILE} ${BUILD_INFO_H_FILE}
6+
COMMAND git rev-parse --short HEAD > ${TEMP_BUILD_INFO_FILE}
7+
COMMAND ${CMAKE_COMMAND} -DBINARY_DIR=${CMAKE_BINARY_DIR} -P ${CMAKE_MODULE_PATH}/GenerateBuildInfoH.cmake
8+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
169
)
1710

1811
set_target_properties (generate_build_info PROPERTIES FOLDER ${CMAKE_SUPPORT_FOLDER_NAME})

CMake/CodebaseOptions.cmake

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,17 @@ include_directories (${CMAKE_SOURCE_DIR}/lib)
88
include_directories (${CMAKE_SOURCE_DIR}/wrapper)
99

1010
# Compiler standard options
11-
set (CMAKE_CXX_STANDARD 14)
11+
set (CMAKE_CXX_STANDARD 20)
1212
set (CMAKE_CXX_STANDARD_REQUIRED ON)
1313
set (CMAKE_CXX_EXTENSIONS OFF)
1414

1515
option (STRIP "Strip all symbols from the binaries" OFF)
1616

17+
add_definitions(-DBOOST_ALLOW_DEPRECATED_HEADERS -DBOOST_DISABLE_PRAGMA_MESSAGE)
18+
19+
set (COLUMBUS_3RDPARTY_INSTALL_DIR ${CMAKE_BINARY_DIR}/3rdparty/install)
20+
set (COLUMBUS_3RDPARTY_SOURCE_DIR ${CMAKE_SOURCE_DIR}/3rdparty)
21+
1722
# Compiler warning settings
1823
if (MSVC)
1924
# For ninja builds on windows we set the CMAKE_VS_PLATFORM_TOOLSET to V140 (VS2015)
@@ -22,7 +27,7 @@ if (MSVC)
2227
endif ()
2328

2429
# Disable some common compiler warnings end enable parallel build
25-
set (EXTRA_COMPILER_OPTIONS "/wd4996 /wd4267 /wd4786 /wd4996 /MP /EHsc")
30+
set (EXTRA_COMPILER_OPTIONS "/WX /wd4996 /wd4267 /wd4786 /wd4244 /wd4068 /MP /EHsc /experimental:external /external:W0 /external:I ${COLUMBUS_3RDPARTY_INSTALL_DIR}/include")
2631

2732
# In Release builds enable Whole Program Optimization and Compile Time Code Generation
2833
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GL")
@@ -31,22 +36,21 @@ if (MSVC)
3136
set (CMAKE_STATIC_LINKER_FLAGS_RELEASE "${CMAKE_STATIC_LINKER_FLAGS_RELEASE} /LTCG")
3237

3338
# The MSVCRT library is the DLL version of the CRT. (/MD) Since we use static CRT no MSVCRT is needed.
34-
set (CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:MSVCRT")
39+
set (CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /NODEFAULTLIB:MSVCRT /STACK:10485760")
3540

3641
# The MSVCRTD library is the debug DLL version of the CRT. (/MDd) Since we use static CRT no MSVCRTD is needed.
37-
set (CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:MSVCRTD")
42+
set (CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} /NODEFAULTLIB:MSVCRTD /STACK:10485760")
3843

39-
# Replace the default MultiThreadedDLL runtime to MultiThreaded.
40-
replace_compiler_options (/MD /MT)
41-
replace_compiler_options (/MDd /MTd)
44+
# Change the default MultiThreadedDLL runtime to MultiThreaded.
45+
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
4246

4347
# Set some global macro definitions requred for use boost and xerces
4448
add_definitions(-DBOOST_ALL_NO_LIB -DXERCES_STATIC_LIBRARY)
4549

4650
elseif (CMAKE_SYSTEM_NAME STREQUAL Linux)
4751

4852
# Enable compiler warnings and use fPIC option
49-
set (EXTRA_COMPILER_OPTIONS "-Wall -fPIC")
53+
set (EXTRA_COMPILER_OPTIONS "-Wall -Werror -Wno-unused-local-typedefs -Wno-unknown-pragmas -fPIC")
5054

5155
if (STRIP)
5256
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s")
@@ -62,10 +66,9 @@ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_COMPILER_OPTIONS}")
6266
# Common global dependencies
6367
set (COLUMBUS_GLOBAL_DEPENDENCY generate_build_info)
6468

65-
set (COLUMBUS_3RDPARTY_INSTALL_DIR ${CMAKE_BINARY_DIR}/3rdparty/install)
66-
set (COLUMBUS_3RDPARTY_SOURCE_DIR ${CMAKE_SOURCE_DIR}/3rdparty)
67-
68-
include_directories (SYSTEM ${COLUMBUS_3RDPARTY_INSTALL_DIR}/include)
69+
if (CMAKE_SYSTEM_NAME STREQUAL Linux)
70+
include_directories (SYSTEM ${COLUMBUS_3RDPARTY_INSTALL_DIR}/include)
71+
endif ()
6972
link_directories (${COLUMBUS_3RDPARTY_INSTALL_DIR}/lib)
7073

7174
if (CMAKE_SYSTEM_NAME STREQUAL Windows)

CMake/Common.cmake

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
if (CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
2+
set (OPENSSL_LIBRARIES libssl.lib libcrypto.lib crypt32.lib)
3+
else ()
4+
set (OPENSSL_LIBRARIES ssl crypto dl pthread)
5+
endif ()
6+
7+
set (CSAN_BINARIES
8+
Columbus.dll
9+
CSAN${EXE}
10+
CSAN.dll
11+
CSAN.dll.config
12+
CSharp.dll
13+
Humanizer.dll
14+
LIM.dll
15+
Microsoft.Bcl.AsyncInterfaces.dll
16+
Microsoft.Build.Locator.dll
17+
Microsoft.CodeAnalysis.CSharp.dll
18+
Microsoft.CodeAnalysis.CSharp.Workspaces.dll
19+
Microsoft.CodeAnalysis.dll
20+
Microsoft.CodeAnalysis.VisualBasic.dll
21+
Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll
22+
Microsoft.CodeAnalysis.Workspaces.dll
23+
Microsoft.CodeAnalysis.Workspaces.MSBuild.dll
24+
System.Composition.AttributedModel.dll
25+
System.Composition.Convention.dll
26+
System.Composition.Hosting.dll
27+
System.Composition.Runtime.dll
28+
System.Composition.TypedParts.dll
29+
CSAN.deps.json
30+
CSAN.runtimeconfig.json
31+
)

CMake/GenerateBuildInfoH.cmake

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,24 @@
11

2-
file(STRINGS ${BINARY_DIR}/BuildInfo.txt BUILD_NUMBER)
3-
4-
file(WRITE ${BINARY_DIR}/BuildInfo.h
5-
"#ifndef _BUILD_INFO_H_\n"
6-
"#define _BUILD_INFO_H_\n"
7-
"#define REVISION_NUMBER \"${BUILD_NUMBER}\"\n"
8-
"#endif\n"
9-
)
2+
set (PREVIOUS_VERSION_FILE ${BINARY_DIR}/BuildInfo.txt)
3+
set (CURRENT_VERSION_FILE ${BINARY_DIR}/BuildInfo-temp.txt)
4+
file(STRINGS ${CURRENT_VERSION_FILE} CURRENT_BUILD_NUMBER)
5+
6+
function (update_version_files)
7+
file(WRITE ${PREVIOUS_VERSION_FILE} ${CURRENT_BUILD_NUMBER})
8+
file(WRITE ${BINARY_DIR}/BuildInfo.h
9+
"#ifndef _BUILD_INFO_H_\n"
10+
"#define _BUILD_INFO_H_\n"
11+
"#define REVISION_NUMBER \"${CURRENT_BUILD_NUMBER}\"\n"
12+
"#endif\n"
13+
)
14+
endfunction ()
15+
16+
17+
if (EXISTS ${PREVIOUS_VERSION_FILE})
18+
file(STRINGS ${PREVIOUS_VERSION_FILE} PREVIOUS_BUILD_NUMBER)
19+
if (NOT ${PREVIOUS_BUILD_NUMBER} STREQUAL ${CURRENT_BUILD_NUMBER})
20+
update_version_files()
21+
endif ()
22+
else()
23+
update_version_files()
24+
endif ()

0 commit comments

Comments
 (0)