diff --git a/.github/workflows/Linux_options.yml b/.github/workflows/Linux_options.yml index 9458bbdd..dfa83f94 100644 --- a/.github/workflows/Linux_options.yml +++ b/.github/workflows/Linux_options.yml @@ -20,7 +20,7 @@ jobs: CC: gcc-11 strategy: matrix: - options: [-DBUILD_D=OFF, -DBUILD_4=OFF, '-D-DBUILD_SHARED_LIBS=ON -DBUILD_WITH_BUFR=OFF -DBUILD_WITH_EXTRA_DEPS=OFF'] + options: [-DBUILD_D=OFF, -DBUILD_4=OFF, '-DBUILD_SHARED_LIBS=ON -DBUILD_WITH_BUFR=OFF -DBUILD_WITH_EXTRA_DEPS=OFF'] steps: @@ -29,21 +29,27 @@ jobs: with: repository: NOAA-EMC/NCEPLIBS-bacio path: bacio - ref: v2.5.0 + ref: v2.6.0 - name: cache-bacio id: cache-bacio uses: actions/cache@v2 with: path: ~/bacio - key: bacio-Linux_options_${{ runner.os }}-v2.5.0 + key: bacio-Linux_options_${{ runner.os }}-v2.5.0-${{ matrix.options }} - name: build-bacio if: steps.cache-bacio.outputs.cache-hit != 'true' run: | + set -x cd bacio mkdir build && cd build - cmake -DCMAKE_INSTALL_PREFIX=~/bacio .. + if [ "${{ matrix.options }}" = "-DBUILD_SHARED_LIBS=ON -DBUILD_WITH_BUFR=OFF -DBUILD_WITH_EXTRA_DEPS=OFF" ] + then + cmake -DCMAKE_INSTALL_PREFIX=~/bacio -DBUILD_SHARED_LIBS=ON .. + else + cmake -DCMAKE_INSTALL_PREFIX=~/bacio .. + fi make -j2 VERBOSE=1 make install @@ -59,14 +65,20 @@ jobs: uses: actions/cache@v2 with: path: ~/bufr - key: bufr-Linux_options_${{ runner.os }}-v11.7.1 + key: bufr-Linux_options_${{ runner.os }}-v11.7.1-${{ matrix.options }} - name: build-bufr if: steps.cache-bufr.outputs.cache-hit != 'true' run: | + set -x cd bufr mkdir build && cd build - cmake -DCMAKE_INSTALL_PREFIX=~/bufr .. + if [ "${{ matrix.options }}" = "-DBUILD_SHARED_LIBS=ON -DBUILD_WITH_BUFR=OFF -DBUILD_WITH_EXTRA_DEPS=OFF" ] + then + cmake -DCMAKE_INSTALL_PREFIX=~/bufr -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=ON .. + else + cmake -DCMAKE_INSTALL_PREFIX=~/bufr -DBUILD_TESTING=OFF .. + fi make -j2 VERBOSE=1 make install @@ -77,6 +89,7 @@ jobs: - name: build-w3emc run: | + set -x cd w3emc mkdir build cd build diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index aeced74f..33628557 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -48,8 +48,10 @@ endif() # This is the C source code. set(c_src summary.c) - add_library(c_obj_lib OBJECT ${c_src}) +if(BUILD_SHARED_LIBS) + set_property(TARGET c_obj_lib PROPERTY POSITION_INDEPENDENT_CODE 1) +endif() # We buld a _4 and a _d by default. foreach(kind ${kinds})