Skip to content

Commit c1552c8

Browse files
committed
Fix scripts for building with MSVC
1 parent 349781c commit c1552c8

File tree

3 files changed

+24
-15
lines changed

3 files changed

+24
-15
lines changed

CMakeLists.txt

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,13 @@ ELSE (DRACOSHA_VALIDATOR_SRC)
234234

235235
IF(WIN32)
236236
IF(MSVC)
237-
TARGET_COMPILE_OPTIONS(${PROJECT_NAME} INTERFACE "/Zc:ternary")
237+
IF (NOT CMAKE_CXX_STANDARD)
238+
SET (CMAKE_CXX_STANDARD 17)
239+
ENDIF()
240+
IF (CMAKE_CXX_STANDARD LESS 17)
241+
MESSAGE(FATAL_ERROR "\n*****************************\nOnly C++17 and later standards are supported for MSVC\nSet CMAKE_CXX_STANDARD=17 in build environment\n*****************************\n")
242+
ENDIF()
243+
TARGET_COMPILE_OPTIONS(${PROJECT_NAME} INTERFACE /Zc:ternary /wd4996 /Zc:__cplusplus)
238244
ELSE(MSVC)
239245
TARGET_COMPILE_DEFINITIONS(${PROJECT_NAME} INTERFACE -D_WIN32_WINNT=0x0600 -Dstrcasecmp=stricmp)
240246
ENDIF(MSVC)
@@ -286,15 +292,15 @@ ELSE (DRACOSHA_VALIDATOR_SRC)
286292
ENDIF(VALIDATOR_WITH_FMT)
287293

288294
IF (VALIDATOR_WITH_TESTS)
289-
290-
MESSAGE(STATUS "Build tests for cpp-validator library")
295+
MESSAGE(STATUS "Enable building tests for cpp-validator library")
291296
ENABLE_TESTING(true)
292297
ADD_SUBDIRECTORY(test)
293-
298+
ELSE(VALIDATOR_WITH_TESTS)
299+
MESSAGE(STATUS "Skip building tests for cpp-validator library")
294300
ENDIF(VALIDATOR_WITH_TESTS)
295301

296302
IF (VALIDATOR_WITH_EXAMPLES)
297-
MESSAGE(STATUS "Build examples for cpp-validator library")
303+
MESSAGE(STATUS "Enable building examples for cpp-validator library")
298304
ENABLE_TESTING(true)
299305
ADD_SUBDIRECTORY(examples)
300306
ELSE (VALIDATOR_WITH_EXAMPLES)

sample-build/win-msvc.bat

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,24 @@ SET MSVC_ROOT=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
66
SET FMT_ROOT=%cd%\deps\fmt
77
SET BOOST_ROOT=%cd%\deps\root-msvc-14.2-x86_64
88

9+
SET BUILD_TYPE=Release
10+
911
SET MSVC_COMPILER=v142
1012
SET COMPILER_VERSION=14.2
1113

12-
SET BUILD_TYPE=Release
13-
1414
SET MSVC_BUILD_ARCH=x64
1515
SET MSVC_ARCH=x64
1616
SET MSVC_TOOLSET="%MSVC_COMPILER%,host=x64"
1717

1818
CALL "%MSVC_ROOT%\VC\Auxiliary\Build\vcvarsall.bat" %MSVC_ARCH% -vcvars_ver=%COMPILER_VERSION%
1919

20-
SET CMAKE_PATH=%PATH%;%CMAKE_PATH%
20+
SET PATH=%PATH%;%CMAKE_PATH%
2121

2222
SET SRC_DIR=%cd%\cpp-validator
2323
SET INSTALL_DIR=%cd%\build\cpp-validator\install
2424
SET BUILD_DIR=%cd%\build\cpp-validator\build
2525

26-
IF EXIST %BUILD_DIR% rmdir /Q /S %BUILD_DIR%
26+
IF EXIST %BUILD_DIR% rmdir /Q /S %BUILD_DIR%
2727

2828
SET BASE_DIR=%cd%
2929

@@ -32,14 +32,13 @@ cd %BUILD_DIR%
3232

3333
cmake -A %MSVC_BUILD_ARCH% -T %MSVC_TOOLSET% ^
3434
-DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% ^
35-
-DCMAKE_BUILD_TYPE=%BUILD_TYPE% ^
3635
-DVALIDATOR_WITH_TESTS=On ^
3736
-DVALIDATOR_WITH_EXAMPLES=On ^
3837
%SRC_DIR%
3938

40-
cmake --build . --config Release -- /m:1 /p:UseMultiToolTask=true /p:MultiProcMaxCount=8 /fileLogger
41-
42-
cd %BASE_DIR%
39+
cmake --build . --config %BUILD_TYPE% -- /m:1 /p:UseMultiToolTask=true /p:MultiProcMaxCount=8 /fileLogger
4340

4441
SET PATH=%PATH%;%BOOST_ROOT%\lib
45-
%BUILD_DIR%\test\Release\dracoshavalidator-test --log_level=test_suite
42+
ctest -VV -C %BUILD_TYPE%
43+
44+
cd %BASE_DIR%

test/CMakeLists.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,9 @@ INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/test.cmake)
1616

1717
TARGET_LINK_LIBRARIES(${PROJECT_NAME} dracoshavalidator ${Boost_LIBRARIES})
1818

19+
IF (MSVC)
20+
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /bigobj")
21+
ENDIF()
22+
1923
ENABLE_TESTING()
20-
ADD_TEST(${PROJECT_NAME} ${PROJECT_NAME})
24+
ADD_TEST(${PROJECT_NAME} ${PROJECT_NAME} --log_level=test_suite)

0 commit comments

Comments
 (0)