Skip to content

Commit d3a45b2

Browse files
committed
Pre-release update build scripts and README.md
1 parent 944892f commit d3a45b2

File tree

6 files changed

+63
-36
lines changed

6 files changed

+63
-36
lines changed

.travis.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,21 @@ matrix:
3737
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-5.0']
3838
packages: ['cmake', 'clang-5.0', 'g++-6', 'libboost-dev']
3939

40+
- os: linux
41+
compiler: clang
42+
env: COMPILER=clang++-6.0
43+
addons:
44+
apt:
45+
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-5.0']
46+
packages: ['cmake', 'clang-6.0', 'g++-6', 'libboost-dev']
47+
48+
- os: linux
49+
compiler: clang
50+
env: COMPILER=clang++-7.0
51+
addons:
52+
apt:
53+
sources: ['ubuntu-toolchain-r-test', 'llvm-toolchain-trusty-5.0']
54+
packages: ['cmake', 'clang-7.0', 'g++-6', 'libboost-dev']
4055

4156
script:
4257
- if [[ "${COMPILER}" != "" ]]; then export CXX=${COMPILER}; fi

CMakeLists.txt

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
cmake_minimum_required(VERSION 3.0)
2-
project(Jinja2Cpp VERSION 0.1.0)
2+
project(Jinja2Cpp VERSION 0.5.0)
33

44
list (APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
55

6-
message (STATUS ">>> Build type: ${CMAKE_BUILD_TYPE}")
7-
86
set(GTEST_ROOT $ENV{GTEST_DIR} CACHE PATH "Path to GTest/GMock library root")
97
if (NOT UNIX)
108
set(BOOST_ROOT $ENV{BOOST_DIR} CACHE PATH "Path to boost library root")
@@ -25,12 +23,18 @@ if (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang" OR ${CMAKE_CXX_COMPILER_ID} MATCHES
2523
if (NOT UNIX)
2624
set (EXTRA_TEST_LIBS "stdc++")
2725
else ()
28-
set (EXTRA_TEST_LIBS "pthread")
26+
include(CMakeFindDependencyMacro)
27+
find_dependency(Threads)
28+
set (EXTRA_TEST_LIBS "Threads::Threads")
2929
endif ()
3030
else ()
3131
# MSVC
3232
if (NOT DEFINED MSVC_RUNTIME_TYPE)
33-
set (MSVC_RUNTIME_TYPE "/MD")
33+
if (NOT WITH_TESTS)
34+
set (MSVC_RUNTIME_TYPE "/MD")
35+
else ()
36+
set (MSVC_RUNTIME_TYPE "/MT")
37+
endif ()
3438
endif ()
3539
if (CMAKE_BUILD_TYPE MATCHES "Debug")
3640
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${MSVC_RUNTIME_TYPE}d")
@@ -46,11 +50,8 @@ endif()
4650
if(NOT "${BOOST_ROOT}" STREQUAL "")
4751
list (APPEND CMAKE_PREFIX_PATH ${BOOST_ROOT})
4852
set (Boost_DIR ${BOOST_ROOT})
49-
message(STATUS "BOOST library search path: ${Boost_DIR}")
5053
endif()
5154

52-
message (STATUS "Thirdparty to build: ${THIRDPARTY_TARGETS}")
53-
message (STATUS ">>> Thirdparty build flags: ${CMAKE_CXX_FLAGS}")
5455
make_directory (${CMAKE_CURRENT_BINARY_DIR}/thirdparty)
5556
execute_process (
5657
COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty
@@ -74,8 +75,6 @@ if("${GTEST_ROOT}" STREQUAL "" AND WITH_TESTS)
7475
set (GTEST_ROOT ${CMAKE_CURRENT_BINARY_DIR}/thirdparty/gtest/install)
7576
endif ()
7677

77-
message (STATUS "### GTEST_ROOT = ${GTEST_ROOT}")
78-
7978
if(NOT "${GTEST_ROOT}" STREQUAL "" AND WITH_TESTS)
8079
list (APPEND CMAKE_PREFIX_PATH ${GTEST_ROOT})
8180
set (Gtest_DIR ${GTEST_ROOT})
@@ -86,12 +85,6 @@ if(NOT "${GTEST_ROOT}" STREQUAL "" AND WITH_TESTS)
8685
find_package(GTest)
8786
endif ()
8887
endif()
89-
message (STATUS "### GTEST_DIR = ${Gtest_DIR}")
90-
message (STATUS "### GTEST_INCLUDE_DIRS = ${GTEST_INCLUDE_DIRS}")
91-
message (STATUS "### GTEST_BOTH_LIBRARIES = ${GTEST_BOTH_LIBRARIES}")
92-
message (STATUS "### GTEST_LIBRARIES = ${GTEST_LIBRARIES}")
93-
message (STATUS "### GTEST_MAIN_LIBRARIES = ${GTEST_MAIN_LIBRARIES}")
94-
9588

9689
find_package(Boost)
9790

@@ -108,10 +101,6 @@ set (LIB_TARGET_NAME jinja2cpp)
108101
CollectSources(Sources Headers ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/src)
109102
CollectSources(PublicSources PublicHeaders ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/include)
110103

111-
message (STATUS ">>>### Jinja2 CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
112-
message (STATUS ">>>### Jinja2 CMAKE_CXX_FLAGS_RELEASE: ${CMAKE_CXX_FLAGS_RELEASE}")
113-
message (STATUS ">>>### Jinja2 CMAKE_CXX_FLAGS_DEBUG: ${CMAKE_CXX_FLAGS_DEBUG}")
114-
115104
add_library(${LIB_TARGET_NAME} ${LIBRARY_TYPE}
116105
${Sources}
117106
${Headers}
@@ -133,6 +122,6 @@ install(TARGETS ${LIB_TARGET_NAME}
133122
ARCHIVE DESTINATION lib/static)
134123

135124
install (DIRECTORY include/ DESTINATION include)
136-
install (DIRECTORY cmake/public DESTINATION cmake)
125+
install (FILES cmake/public/FindJinja2Cpp.cmake DESTINATION cmake)
137126

138127
add_test(NAME jinja2cpp_tests COMMAND jinja2cpp_tests)

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,13 @@ In order to compile Jinja2Cpp you need:
184184
> ctest -C Release
185185
```
186186

187+
## Additional CMake build flags
188+
You can define (via -D command line CMake option) the following build flags:
189+
190+
* **WITH_TESTS** (default TRUE) - build or not Jinja2Cpp tests.
191+
* **MSVC_RUNTIME_TYPE** (default /MD) - MSVC runtime type to link with (if you use Microsoft Visual Studio compiler).
192+
* **LIBRARY_TYPE** Could be STATIC (default for Windows platform) or SHARED (default for Linux). Specify the type of Jinja2Cpp library to build.
193+
187194
# Link with you projects
188195
Jinja2Cpp is shipped with cmake finder script. So you can:
189196

@@ -201,12 +208,23 @@ find_package(Jinja2Cpp)
201208
```cmake
202209
#...
203210
include_directories(
211+
#...
204212
${JINJA2CPP_INCLUDE_DIR}
205213
)
206214
207215
target_link_libraries(YourTarget
216+
#...
208217
${JINJA2CPP_LIBRARY}
209218
)
210219
#...
211220
```
212221

222+
or just link with Jinja2Cpp target:
223+
```cmake
224+
#...
225+
target_link_libraries(YourTarget
226+
#...
227+
Jinja2Cpp
228+
)
229+
#...
230+
```

appveyor.yml

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,22 @@
1-
version: '{build}'
1+
version: 0.5.'{build}'
22

33
os:
44
- Visual Studio 2015
55
- Visual Studio 2017
66

77
environment:
88
matrix:
9-
- additional_flags: ""
10-
# - additional_flags: "/std:c++latest /utf-8"
9+
- PLATFORM: x64
10+
- PLATFORM: x86
1111

1212
matrix:
13-
exclude:
14-
- additional_flags: "/permissive- /std:c++latest /utf-8"
15-
os: Visual Studio 2015
13+
fast_finish: true
1614

1715
init:
18-
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
19-
# - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" if "%PLATFORM%"=="x64" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
20-
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
21-
# - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%PLATFORM%"=="x64" call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
16+
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" if "%PLATFORM%"=="x86" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
17+
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" if "%PLATFORM%"=="x64" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
18+
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%PLATFORM%"=="x86" call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
19+
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%PLATFORM%"=="x64" call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
2220
# - if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if "%GENERATOR%"=="NMake Makefiles" if "%PLATFORM%"=="x64" call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64
2321

2422
install:
@@ -27,9 +25,8 @@ install:
2725
build_script:
2826
- mkdir -p build && cd build
2927
- set BOOST_DIR=C:\Libraries\boost_1_65_1
30-
- cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DMSVC_RUNTIME_TYPE="/MT"
28+
- cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release
3129
- cmake --build . --target all
3230

3331
test_script:
34-
# - .\jinja2cpp_tests
3532
- ctest -C Release -V

cmake/build_thirdparty.cmake

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@ macro (BuildThirdparty TargetName ThirdpartySrcPath ThirdpartyOutFile)
44
set (INST_DIR ${CMAKE_CURRENT_BINARY_DIR}/${TargetName}/install)
55

66
make_directory (${BUILD_DIR})
7-
message (STATUS '${ThirdpartySrcPath}')
8-
message (STATUS ">>> Thirdparty build type: ${CMAKE_BUILD_TYPE}")
9-
message (STATUS ">>> Thirdparty build type: ${CMAKE_CXX_FLAGS}")
107

118
add_custom_command (
129
OUTPUT ${BUILD_DIR}/CMakeCache.txt

cmake/public/FindJinja2Cpp.cmake

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,14 @@ _Jinja2Cpp_Find_Library(JINJA2CPP_LIBRARY jinja2cpp)
2020

2121
include(FindPackageHandleStandardArgs)
2222
FIND_PACKAGE_HANDLE_STANDARD_ARGS(JINJA2CPP DEFAULT_MSG JINJA2CPP_LIBRARY JINJA2CPP_INCLUDE_DIR)
23+
24+
if (JINJA2CPP_FOUND)
25+
if (NOT TARGET Jinja2Cpp)
26+
add_library(Jinja2Cpp UNKNOWN IMPORTED)
27+
set_target_properties(Jinja2Cpp PROPERTIES
28+
INTERFACE_INCLUDE_DIRECTORIES "${JINJA2CPP_INCLUDE_DIR}")
29+
set_target_properties(Jinja2Cpp PROPERTIES
30+
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
31+
IMPORTED_LOCATION "${JINJA2CPP_LIBRARY}")
32+
endif ()
33+
endif ()

0 commit comments

Comments
 (0)