Skip to content

Commit d797285

Browse files
authored
Merge pull request #75 from traversaro/fixwintests
Ensure symbols are correctly exported on Windows
2 parents e3b243a + e8c4cac commit d797285

File tree

4 files changed

+29
-26
lines changed

4 files changed

+29
-26
lines changed

CMakeLists.txt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,7 @@ modernize_target_link_libraries(
102102
${EIGEN3_INCLUDE_DIR})
103103
target_include_directories(
104104
${PROJECT_NAME} INTERFACE $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
105-
install(
106-
TARGETS ${PROJECT_NAME}
107-
EXPORT ${TARGETS_EXPORT_NAME}
108-
DESTINATION lib)
105+
install(TARGETS ${PROJECT_NAME} EXPORT ${TARGETS_EXPORT_NAME})
109106

110107
if(BUILD_TESTING)
111108
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: 22 additions & 21 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,17 +108,17 @@ 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-
double c1, Eigen::VectorXd& g0, const Eigen::MatrixXd& CE,
112-
const Eigen::VectorXd& ce0, const Eigen::MatrixXd& CI,
113-
const Eigen::VectorXd& ci0, Eigen::VectorXd& x,
114-
Eigen::VectorXi& A, size_t& q);
111+
EIQUADPROG_DLLAPI double solve_quadprog(
112+
Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol, double c1,
113+
Eigen::VectorXd& g0, const Eigen::MatrixXd& CE, const Eigen::VectorXd& ce0,
114+
const Eigen::MatrixXd& CI, const Eigen::VectorXd& ci0, Eigen::VectorXd& x,
115+
Eigen::VectorXi& A, size_t& q);
115116

116-
double solve_quadprog(Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol,
117-
double c1, Eigen::VectorXd& g0, const Eigen::MatrixXd& CE,
118-
const Eigen::VectorXd& ce0, const Eigen::MatrixXd& CI,
119-
const Eigen::VectorXd& ci0, Eigen::VectorXd& x,
120-
Eigen::VectorXd& y, Eigen::VectorXi& A, size_t& q);
117+
EIQUADPROG_DLLAPI double solve_quadprog(
118+
Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol, double c1,
119+
Eigen::VectorXd& g0, const Eigen::MatrixXd& CE, const Eigen::VectorXd& ce0,
120+
const Eigen::MatrixXd& CI, const Eigen::VectorXd& ci0, Eigen::VectorXd& x,
121+
Eigen::VectorXd& y, Eigen::VectorXi& A, size_t& q);
121122

122123
EIQUADPROG_DEPRECATED
123124
inline double solve_quadprog2(Eigen::LLT<Eigen::MatrixXd, Eigen::Lower>& chol,
@@ -131,17 +132,17 @@ 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-
const Eigen::MatrixXd& CE, const Eigen::VectorXd& ce0,
136-
const Eigen::MatrixXd& CI, const Eigen::VectorXd& ci0,
137-
Eigen::VectorXd& x, Eigen::VectorXi& activeSet,
138-
size_t& activeSetSize);
139-
140-
double solve_quadprog(Eigen::MatrixXd& G, Eigen::VectorXd& g0,
141-
const Eigen::MatrixXd& CE, const Eigen::VectorXd& ce0,
142-
const Eigen::MatrixXd& CI, const Eigen::VectorXd& ci0,
143-
Eigen::VectorXd& x, Eigen::VectorXd& y,
144-
Eigen::VectorXi& activeSet, size_t& activeSetSize);
135+
EIQUADPROG_DLLAPI double solve_quadprog(
136+
Eigen::MatrixXd& G, Eigen::VectorXd& g0, const Eigen::MatrixXd& CE,
137+
const Eigen::VectorXd& ce0, const Eigen::MatrixXd& CI,
138+
const Eigen::VectorXd& ci0, Eigen::VectorXd& x, Eigen::VectorXi& activeSet,
139+
size_t& activeSetSize);
140+
141+
EIQUADPROG_DLLAPI double solve_quadprog(
142+
Eigen::MatrixXd& G, Eigen::VectorXd& g0, const Eigen::MatrixXd& CE,
143+
const Eigen::VectorXd& ce0, const Eigen::MatrixXd& CI,
144+
const Eigen::VectorXd& ci0, Eigen::VectorXd& x, Eigen::VectorXd& y,
145+
Eigen::VectorXi& activeSet, size_t& activeSetSize);
145146
// }
146147

147148
} // namespace solvers

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 with
35+
# 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)