diff --git a/cmake/Findsirius_solver.cmake b/cmake/Findsirius_solver.cmake
new file mode 100644
index 0000000..12a376d
--- /dev/null
+++ b/cmake/Findsirius_solver.cmake
@@ -0,0 +1,15 @@
+set(sirius_solver_FOUND FALSE)
+
+if(NOT sirius_solver_ROOT)
+ set(sirius_solver_ROOT $ENV{sirius_solver_ROOT})
+endif()
+message(STATUS "sirius_solver_ROOT: ${sirius_solver_ROOT}")
+if(NOT sirius_solver_ROOT)
+ message(FATAL_ERROR "sirius_solver_ROOT: not found")
+else()
+ set(CMAKE_MODULE_PATH_BACKUP ${CMAKE_MODULE_PATH})
+ set(CMAKE_MODULE_PATH "")
+ set(sirius_solver_DIR "${sirius_solver_ROOT}/cmake")
+ find_package(sirius_solver REQUIRED)
+ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH_BACKUP})
+endif()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index b0d1fd4..8b4a475 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,13 +1,13 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
-PROJECT(PNE)
+CMAKE_MINIMUM_REQUIRED(VERSION 3.12)
+PROJECT(sirius_solver)
if(MSVC)
add_compile_definitions("_CRT_SECURE_NO_WARNINGS")
- set(BUILD_SHARED_LIBS OFF)
+ SET(BUILD_SHARED_LIBS OFF)
+ SET(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+ SET(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1)
endif(MSVC)
-SET(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
-SET(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1)
MESSAGE("CMAKE_BINARY_DIR : ${CMAKE_BINARY_DIR}")
MESSAGE("CMAKE_SOURCE_DIR : ${CMAKE_SOURCE_DIR}")
@@ -20,28 +20,13 @@ INCLUDE_DIRECTORIES(. ALLOCATEUR BRANCH_AND_BOUND POINT_INTERIEUR PRESOLVE SIMPL
FILE(GLOB HEADERS ALLOCATEUR/*.h PRESOLVE/*.h BRANCH_AND_BOUND/*.h POINT_INTERIEUR/*.h SIMPLEXE/*.h SIMPLEXE/LU/*.h ./PNE/*.h ./SRS/*.h)
-MESSAGE("-- ALLOCATEUR")
FILE(GLOB ALLOCATEUR_FILES ALLOCATEUR/*.c ALLOCATEUR/*.h)
-
-MESSAGE("-- PRESOLVE")
FILE(GLOB PRESOLVE_FILES PRESOLVE/*.c PRESOLVE/*.h)
-
-MESSAGE("-- BRANCH_AND_BOUND")
FILE(GLOB BRANCH_AND_BOUND_FILES BRANCH_AND_BOUND/*.c BRANCH_AND_BOUND/*.h)
-
-MESSAGE("-- POINT_INTERIEUR")
FILE(GLOB POINT_INTERIEUR_FILES POINT_INTERIEUR/*.c POINT_INTERIEUR/*.h)
-
-MESSAGE("-- SIMPLEXE")
FILE(GLOB SIMPLEXE_FILES SIMPLEXE/*.c SIMPLEXE/*.h)
-
-MESSAGE("-- LU")
FILE(GLOB LU_FILES SIMPLEXE/LU/*.c SIMPLEXE/LU/*.h)
-
-MESSAGE("-- PNE")
FILE(GLOB PNE_FILES PNE/*.c PNE/*.h)
-
-MESSAGE("-- SRS")
FILE(GLOB SRS_FILES SRS/*.c SRS/*.h)
GET_FILENAME_COMPONENT(FULL_PATH_TEST_CPP ${CMAKE_CURRENT_SOURCE_DIR}/PNE/pne_standalone.c ABSOLUTE)
@@ -50,58 +35,54 @@ MESSAGE("REMOVING FROM SOURCE ${FULL_PATH_TEST_CPP}")
LIST(REMOVE_ITEM PNE_FILES ${FULL_PATH_TEST_CPP})
# MESSAGE("-- PNE_FILES : ${PNE_FILES}")
-ADD_LIBRARY(bib_solveur_static STATIC ${ALLOCATEUR_FILES} ${PRESOLVE_FILES} ${BRANCH_AND_BOUND_FILES} ${POINT_INTERIEUR_FILES} ${SIMPLEXE_FILES} ${LU_FILES} ${PNE_FILES} ${SRS_FILES})
-ADD_LIBRARY(bib_solveur SHARED ${ALLOCATEUR_FILES} ${PRESOLVE_FILES} ${BRANCH_AND_BOUND_FILES} ${POINT_INTERIEUR_FILES} ${SIMPLEXE_FILES} ${LU_FILES} ${PNE_FILES} ${SRS_FILES})
-ADD_EXECUTABLE(PNE_STANDALONE PNE/pne_standalone.c )
-ADD_EXECUTABLE(NEWSPX_STANDALONE SPX_STANDALONE/spx_standalone.c )
-ADD_EXECUTABLE(TEST_API TEST_API/main.c )
-
-#SET_SOURCE_FILES_PROPERTIES(pne_standalone.c ${ALLOCATEUR_FILES} ${PRESOLVE_FILES} ${BRANCH_AND_BOUND_FILES} ${POINT_INTERIEUR_FILES} ${SIMPLEXE_FILES} ${LU_FILES} ${PNE_FILES} PROPERTIES LANGUAGE CXX)
-
+ADD_LIBRARY(sirius_solver_static STATIC ${ALLOCATEUR_FILES} ${PRESOLVE_FILES} ${BRANCH_AND_BOUND_FILES} ${POINT_INTERIEUR_FILES} ${SIMPLEXE_FILES} ${LU_FILES} ${PNE_FILES} ${SRS_FILES})
+ADD_LIBRARY(sirius_solver SHARED ${ALLOCATEUR_FILES} ${PRESOLVE_FILES} ${BRANCH_AND_BOUND_FILES} ${POINT_INTERIEUR_FILES} ${SIMPLEXE_FILES} ${LU_FILES} ${PNE_FILES} ${SRS_FILES})
+#ADD_EXECUTABLE(PNE_STANDALONE PNE/pne_standalone.c )
+#ADD_EXECUTABLE(NEWSPX_STANDALONE SPX_STANDALONE/spx_standalone.c )
+#ADD_EXECUTABLE(TEST_API TEST_API/main.c )
FILE(GLOB LIB_PNE_FILES LIBRAIRIE_PNE/*.c)
FILE(GLOB LIB_PNE_HEADERS LIBRAIRIE_PNE/*.h)
-MESSAGE("-- LIB_PNE_FILES : ${LIB_PNE_FILES}")
-MESSAGE("-- LIB_PNE_HEADERS : ${LIB_PNE_HEADERS}")
-MESSAGE("-- COINDIRINC : $ENV{COINDIRINC}")
-MESSAGE("-- COINDIRLIB : $ENV{COINDIRLIB}")
-
-INCLUDE_DIRECTORIES($ENV{COINDIRINC} $ENV{XPRESSDIR}/include)
-
-SET(COMPILE_PNE_LIBRARY OFF)
-IF(COMPILE_PNE_LIBRARY)
- ADD_LIBRARY(PNE_LIBRARY SHARED ${LIB_PNE_FILES} ${LIB_PNE_HEADERS})
- #TARGET_COMPILE_DEFINITIONS(PNE_LIBRARY PUBLIC COIN_EXTERN_C)
- #TARGET_COMPILE_DEFINITIONS(PNE_LIBRARY PUBLIC CLP_EXTERN_C)
- TARGET_COMPILE_DEFINITIONS(PNE_LIBRARY PUBLIC SHARED_EXPORTS)
-ENDIF(COMPILE_PNE_LIBRARY)
-
IF(WIN32)
- TARGET_LINK_LIBRARIES(PNE_STANDALONE bib_solveur_static)
- TARGET_LINK_LIBRARIES(NEWSPX_STANDALONE bib_solveur_static)
- TARGET_LINK_LIBRARIES(TEST_API bib_solveur_static)
- IF(COMPILE_PNE_LIBRARY)
- TARGET_LINK_LIBRARIES(PNE_LIBRARY bib_solveur_static $ENV{XPRESSDIR}/lib/xprs.lib $ENV{COINDIRLIB}/CoinUtils.lib $ENV{COINDIRLIB}/Clp.lib C:/ProgramData/Anaconda2/Library/lib/zlib.lib C:/ProgramData/Anaconda2/Library/lib/bzip2.lib)
- ENDIF(COMPILE_PNE_LIBRARY)
-ELSE()
- TARGET_LINK_LIBRARIES(PNE_STANDALONE bib_solveur_static m)
- TARGET_LINK_LIBRARIES(NEWSPX_STANDALONE bib_solveur_static m)
- TARGET_LINK_LIBRARIES(TEST_API bib_solveur_static m)
- IF(COMPILE_PNE_LIBRARY)
- TARGET_LINK_LIBRARIES(PNE_LIBRARY bib_solveur_static $ENV{XPRESSDIR}/lib/xprs.lib m)
- ENDIF(COMPILE_PNE_LIBRARY)
-ENDIF(WIN32)
-
-set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install")
-INSTALL(FILES ${HEADERS} DESTINATION "${CMAKE_BINARY_DIR}/install/includes")
-IF (MSVC)
- INSTALL(TARGETS bib_solveur RUNTIME DESTINATION "${CMAKE_BINARY_DIR}/install/lib/Release" CONFIGURATIONS Release)
- INSTALL(TARGETS bib_solveur ARCHIVE DESTINATION "${CMAKE_BINARY_DIR}/install/lib/Release" CONFIGURATIONS Release)
- INSTALL(TARGETS bib_solveur RUNTIME DESTINATION "${CMAKE_BINARY_DIR}/install/lib/Debug" CONFIGURATIONS Debug)
- INSTALL(TARGETS bib_solveur ARCHIVE DESTINATION "${CMAKE_BINARY_DIR}/install/lib/Debug" CONFIGURATIONS Debug)
+ # TARGET_LINK_LIBRARIES(TEST_API sirius_solver_static)
ELSE()
- INSTALL(TARGETS bib_solveur DESTINATION "${CMAKE_BINARY_DIR}/install/lib/")
-ENDIF()
-
-#INSTALL(TARGETS bib_solveur PUBLIC_HEADER DESTINATION "${CMAKE_BINARY_DIR}/install/includes")
+ TARGET_LINK_LIBRARIES(sirius_solver m)
+ TARGET_LINK_LIBRARIES(sirius_solver_static m)
+ # TARGET_LINK_LIBRARIES(TEST_API sirius_solver_static)
+ENDIF(WIN32)
+
+SET_TARGET_PROPERTIES(sirius_solver_static PROPERTIES PUBLIC_HEADER "${HEADERS}")
+SET_TARGET_PROPERTIES(sirius_solver PROPERTIES PUBLIC_HEADER "${HEADERS}")
+target_include_directories(sirius_solver PUBLIC
+ $
+ $
+ $)
+
+IF (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+ SET(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install")
+ENDIF (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+
+MESSAGE("CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}")
+
+INSTALL(TARGETS sirius_solver
+ EXPORT sirius_solver
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin
+ INCLUDES DESTINATION include
+)
+
+INSTALL(EXPORT sirius_solver
+ FILE sirius_solverConfig.cmake
+ DESTINATION cmake
+)
+
+SET(CPACK_PACKAGE_NAME "sirius_solver")
+SET(CPACK_PACKAGE_VERSION_MAJOR "1")
+SET(CPACK_PACKAGE_VERSION_MINOR "0")
+SET(CPACK_PACKAGE_VERSION_PATCH "0")
+
+SET(CPACK_GENERATOR "ZIP")
+
+INCLUDE(CPack)