Skip to content

Commit b01f431

Browse files
committed
Add -fPIC for linux shared library config
1 parent fe61995 commit b01f431

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

.github/workflows/linux-build.yml

+4-2
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,8 @@ jobs:
8989
compiler: [5.0, 6.0, 7, 8]
9090
base-flags: ["", -DJINJA2CPP_CXX_STANDARD=17]
9191
build-config: [Release, Debug]
92-
92+
build-shared: [TRUE, FALSE]
93+
9394
include:
9495
- compiler: 5.0
9596
docker-image: conanio/clang50
@@ -114,6 +115,7 @@ jobs:
114115
INPUT_BASE_FLAGS: ${{ matrix.base-flags }}
115116
INPUT_BASE_CONFIG: ${{ matrix.build-config }}
116117
INPUT_EXTRA_FLAGS: ${{ matrix.extra-flags }}
118+
INPUT_BUILD_SHARED: ${{ matrix.build-shared }}
117119
HOME: /home/conan
118120
run: |
119121
export BUILD_TARGET=all
@@ -124,7 +126,7 @@ jobs:
124126
export EXTRA_FLAGS="${INPUT_BASE_FLAGS} ${INPUT_EXTRA_FLAGS}"
125127
mkdir $BUILD_DIRECTORY && cd $BUILD_DIRECTORY
126128
sudo chmod gou+rw -R $WORKSPACE
127-
cmake $CMAKE_OPTS -DCMAKE_BUILD_TYPE=$BUILD_CONFIG -DCMAKE_CXX_FLAGS=$CMAKE_CXX_FLAGS -DJINJA2CPP_DEPS_MODE=internal $EXTRA_FLAGS $WORKSPACE && cmake --build . --config $BUILD_CONFIG --target all -- -j4
129+
cmake $CMAKE_OPTS -DCMAKE_BUILD_TYPE=$BUILD_CONFIG -DCMAKE_CXX_FLAGS=$CMAKE_CXX_FLAGS -DJINJA2CPP_DEPS_MODE=internal -DJINJA2CPP_BUILD_SHARED=$INPUT_BUILD_SHARED $EXTRA_FLAGS $WORKSPACE && cmake --build . --config $BUILD_CONFIG --target all -- -j4
128130
129131
- name: Test
130132
run: |

CMakeLists.txt

+8-4
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ endif()
1515
set(JINJA2CPP_SANITIZERS address+undefined memory)
1616
set(JINJA2CPP_WITH_SANITIZERS none CACHE STRING "Build with sanitizer")
1717
set_property(CACHE JINJA2CPP_WITH_SANITIZERS PROPERTY STRINGS ${JINJA2CPP_SANITIZERS})
18-
set (JINJA2CPP_DEPS_MODE "external" CACHE STRING "Jinja2Cpp dependency management mode (internal | external | external-boost | conan-build). See documentation for details. 'interal' is default.")
18+
set(JINJA2CPP_DEPS_MODE "external" CACHE STRING "Jinja2Cpp dependency management mode (internal | external | external-boost | conan-build). See documentation for details. 'interal' is default.")
1919
option(JINJA2CPP_BUILD_TESTS "Build Jinja2Cpp unit tests" ${JINJA2CPP_IS_MAIN_PROJECT})
2020
option(JINJA2CPP_STRICT_WARNINGS "Enable additional warnings and treat them as errors" ON)
2121
option(JINJA2CPP_BUILD_SHARED "Build shared linkage version of Jinja2Cpp" OFF)
@@ -25,13 +25,17 @@ if (DEFINED BUILD_SHARED_LIBS)
2525
set(JINJA2CPP_BUILD_SHARED BUILD_SHARED_LIBS)
2626
endif ()
2727

28+
if (JINJA2CPP_BUILD_SHARED)
29+
set(JINJA2CPP_PIC ON)
30+
endif ()
31+
2832
if (NOT JINJA2CPP_DEPS_MODE)
29-
set (JINJA2CPP_DEPS_MODE "internal")
33+
set(JINJA2CPP_DEPS_MODE "internal")
3034
endif ()
3135

3236
if (JINJA2CPP_IS_MAIN_PROJECT OR NOT CMAKE_CXX_STANDARD)
33-
set (JINJA2CPP_CXX_STANDARD 14 CACHE STRING "Jinja2Cpp C++ standard to build with. C++14 is default")
34-
set (CMAKE_CXX_STANDARD ${JINJA2CPP_CXX_STANDARD})
37+
set(JINJA2CPP_CXX_STANDARD 14 CACHE STRING "Jinja2Cpp C++ standard to build with. C++14 is default")
38+
set(CMAKE_CXX_STANDARD ${JINJA2CPP_CXX_STANDARD})
3539
endif ()
3640

3741
if (NOT JINJA2CPP_CXX_STANDARD)

0 commit comments

Comments
 (0)