Skip to content

Commit 6c3b955

Browse files
committed
Ensure symbols are correctly exported on Windows
1 parent e3b243a commit 6c3b955

File tree

4 files changed

+12
-7
lines changed

4 files changed

+12
-7
lines changed

CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,7 @@ target_include_directories(
104104
${PROJECT_NAME} INTERFACE $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
105105
install(
106106
TARGETS ${PROJECT_NAME}
107-
EXPORT ${TARGETS_EXPORT_NAME}
108-
DESTINATION lib)
107+
EXPORT ${TARGETS_EXPORT_NAME})
109108

110109
if(BUILD_TESTING)
111110
add_subdirectory(tests)

include/eiquadprog/eiquadprog-fast.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858

5959
#define DEFAULT_MAX_ITER 1000
6060

61+
#include "eiquadprog/config.hpp"
6162
#include "eiquadprog/eiquadprog-utils.hxx"
6263

6364
namespace eiquadprog {
@@ -75,7 +76,7 @@ enum EiquadprogFast_status {
7576
EIQUADPROG_FAST_REDUNDANT_EQUALITIES = 4
7677
};
7778

78-
class EiquadprogFast {
79+
class EIQUADPROG_DLLAPI EiquadprogFast {
7980
typedef Eigen::MatrixXd MatrixXd;
8081
typedef Eigen::VectorXd VectorXd;
8182
typedef Eigen::VectorXi VectorXi;

include/eiquadprog/eiquadprog.hpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
#include <Eigen/Cholesky>
7878
#include <Eigen/Core>
7979

80+
#include "eiquadprog/config.hpp"
8081
#include "eiquadprog/deprecated.hpp"
8182
#include "eiquadprog/eiquadprog-utils.hxx"
8283

@@ -107,13 +108,13 @@ void delete_constraint(Eigen::MatrixXd& R, Eigen::MatrixXd& J,
107108
Eigen::VectorXi& A, Eigen::VectorXd& u, size_t p,
108109
size_t& iq, size_t l);
109110

110-
double solve_quadprog(Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol,
111+
EIQUADPROG_DLLAPI double solve_quadprog(Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol,
111112
double c1, Eigen::VectorXd& g0, const Eigen::MatrixXd& CE,
112113
const Eigen::VectorXd& ce0, const Eigen::MatrixXd& CI,
113114
const Eigen::VectorXd& ci0, Eigen::VectorXd& x,
114115
Eigen::VectorXi& A, size_t& q);
115116

116-
double solve_quadprog(Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol,
117+
EIQUADPROG_DLLAPI double solve_quadprog(Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol,
117118
double c1, Eigen::VectorXd& g0, const Eigen::MatrixXd& CE,
118119
const Eigen::VectorXd& ce0, const Eigen::MatrixXd& CI,
119120
const Eigen::VectorXd& ci0, Eigen::VectorXd& x,
@@ -131,13 +132,13 @@ inline double solve_quadprog2(Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol,
131132
}
132133

133134
/* solve_quadprog is used for on-demand QP solving */
134-
double solve_quadprog(Eigen::MatrixXd& G, Eigen::VectorXd& g0,
135+
EIQUADPROG_DLLAPI double solve_quadprog(Eigen::MatrixXd& G, Eigen::VectorXd& g0,
135136
const Eigen::MatrixXd& CE, const Eigen::VectorXd& ce0,
136137
const Eigen::MatrixXd& CI, const Eigen::VectorXd& ci0,
137138
Eigen::VectorXd& x, Eigen::VectorXi& activeSet,
138139
size_t& activeSetSize);
139140

140-
double solve_quadprog(Eigen::MatrixXd& G, Eigen::VectorXd& g0,
141+
EIQUADPROG_DLLAPI double solve_quadprog(Eigen::MatrixXd& G, Eigen::VectorXd& g0,
141142
const Eigen::MatrixXd& CE, const Eigen::VectorXd& ce0,
142143
const Eigen::MatrixXd& CI, const Eigen::VectorXd& ci0,
143144
Eigen::VectorXd& x, Eigen::VectorXd& y,

tests/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ foreach(test ${TESTS})
3131
endforeach(test ${TESTS})
3232

3333
add_library(testab SHARED TestA.cpp TestB.cpp)
34+
# testab is just a test shared library, so on Windows we export the symbols
35+
# with WINDOWS_EXPORT_ALL_SYMBOLS
36+
set_target_properties(testab PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
37+
3438
target_link_libraries(testab ${PROJECT_NAME})
3539
target_link_libraries(test-integration testab)
3640
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")

0 commit comments

Comments
 (0)