From fd28cef3eb4cfa37a77de8f62fd35fc9c0b09089 Mon Sep 17 00:00:00 2001 From: Markus Salasoo Date: Mon, 1 Oct 2018 12:48:31 -0700 Subject: [PATCH] Fix CFP linkage on WIN32, update examples/diffusionC to use CFP_NAMESPACE, examples/iterator to compile with MSVC, bump Appveyor build-version --- appveyor.yml | 2 +- cfp/src/CMakeLists.txt | 13 ++++++++++++- cfp/src/cfparrays.cpp | 2 +- examples/diffusionC.c | 2 +- examples/iterator.cpp | 2 +- 5 files changed, 16 insertions(+), 5 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 717c95a67..2cfbb139a 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,4 @@ -version: 0.5.3-{build} +version: 0.5.4-{build} environment: matrix: diff --git a/cfp/src/CMakeLists.txt b/cfp/src/CMakeLists.txt index 238a28080..d2e8c680d 100644 --- a/cfp/src/CMakeLists.txt +++ b/cfp/src/CMakeLists.txt @@ -1,7 +1,18 @@ add_library(cfp cfparrays.cpp) + if(DEFINED CFP_NAMESPACE) - target_compile_definitions(cfp PUBLIC "CFP_NAMESPACE=${CFP_NAMESPACE}") + list(APPEND cfp_public_defs "CFP_NAMESPACE=${CFP_NAMESPACE}") +endif() + +if(WIN32) + # define ZFP_SOURCE when compiling libcfp to export symbols to Windows DLL + list(APPEND cfp_private_defs ZFP_SOURCE) endif() + +target_compile_definitions(cfp + PUBLIC ${cfp_public_defs} + PRIVATE ${cfp_private_defs}) + target_include_directories(cfp PUBLIC ${ZFP_SOURCE_DIR}/include diff --git a/cfp/src/cfparrays.cpp b/cfp/src/cfparrays.cpp index 99432f21f..bcd886868 100644 --- a/cfp/src/cfparrays.cpp +++ b/cfp/src/cfparrays.cpp @@ -7,7 +7,7 @@ #include "cfparray3f.cpp" #include "cfparray3d.cpp" -const cfp_api CFP_NAMESPACE = { +export_ const cfp_api CFP_NAMESPACE = { // array1f { cfp_array1f_ctor_default, diff --git a/examples/diffusionC.c b/examples/diffusionC.c index 94afe2462..99a5c3db0 100644 --- a/examples/diffusionC.c +++ b/examples/diffusionC.c @@ -6,7 +6,7 @@ #include #include "cfparrays.h" -#define _ (cfp.array2d) +#define _ (CFP_NAMESPACE.array2d) #define MAX(x, y) (((nx) > (ny)) ? (nx) : (ny)) diff --git a/examples/iterator.cpp b/examples/iterator.cpp index c7623cd6d..698692ff2 100644 --- a/examples/iterator.cpp +++ b/examples/iterator.cpp @@ -29,7 +29,7 @@ int main() zfp::array1 v(10, 64.0); // initialize and print array of random values for (zfp::array1::iterator p = v.begin(); p != v.end(); p++) - *p = drand48(); + *p = rand(); std::cout << "random array" << std::endl; print1(&v[0], v.size()); std::cout << std::endl;