initialCommit 4 ans en retard
This commit is contained in:
+298
@@ -0,0 +1,298 @@
|
||||
|
||||
# Nous voulons un cmake "récent" pour utiliser les dernières fonctionnalités.
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
# Nom du projet.
|
||||
set(ORDO OrdonnancementCorrectif)
|
||||
|
||||
set(INSGEN InstanceGenerator)
|
||||
|
||||
set(TESTS Tests)
|
||||
|
||||
project(${ORDO})
|
||||
|
||||
# Génération de la liste des fichiers sources.
|
||||
|
||||
file(GLOB_RECURSE
|
||||
SRCS_Ordo
|
||||
src/OrdoCorr/main.cpp
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE
|
||||
SRCS_Insgen
|
||||
src/InstanceGenerator/main.cpp
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE
|
||||
SRCS_Gen
|
||||
src/InstanceGenerator/Generator/*
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE
|
||||
SRCS_Interface
|
||||
src/OrdoCorr/Interface/*
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE
|
||||
SRCS_Solver
|
||||
src/OrdoCorr/Solver/*
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE
|
||||
SRCS_Config
|
||||
src/General/Configuration/*
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE
|
||||
SRCS_Model
|
||||
src/General/Model/*
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE
|
||||
SRCS_Logs
|
||||
src/General/Logs/*
|
||||
)
|
||||
|
||||
file(GLOB_RECURSE
|
||||
SRCS_Tester
|
||||
src/OrdoCorr/Tester/*
|
||||
)
|
||||
|
||||
# ---------------------------------------
|
||||
|
||||
|
||||
|
||||
# ------- Inclusion de JSONfMC++ --------
|
||||
# JSONfMC++ Lib pour gestion fichier JSON, en mode header only.
|
||||
if(WIN32)
|
||||
set(JSONlib_DIR ./lib/CMake/Windows)
|
||||
else()
|
||||
set(JSONlib_DIR ./lib/CMake/Linux)
|
||||
endif()
|
||||
|
||||
find_package(JSONlib REQUIRED)
|
||||
|
||||
if(JSONlib_FOUND)
|
||||
message("lib JSONFMC++ Trouvé")
|
||||
else()
|
||||
message("lib JSONFMC++ Introuvable")
|
||||
endif()
|
||||
# ---------------------------------------
|
||||
|
||||
|
||||
|
||||
# ------- Inclusion de Boost Graph Library --------
|
||||
# Boost Graph Library pour gestion des graphes en mode header only.
|
||||
if(WIN32)
|
||||
set(BOOSTGRAPHlib_DIR ./lib/CMake/Windows)
|
||||
else()
|
||||
set(BOOSTGRAPHlib_DIR ./lib/CMake/Linux)
|
||||
endif()
|
||||
|
||||
find_package(BOOSTGRAPHlib REQUIRED)
|
||||
|
||||
if(BOOSTGRAPHlib_FOUND)
|
||||
message("lib Boost Graph Trouvé")
|
||||
else()
|
||||
message("lib Boost Graph Introuvable")
|
||||
endif()
|
||||
# ---------------------------------------
|
||||
|
||||
# ------- Inclusion de httplib --------
|
||||
# httplib Lib pour gestion des requetes web en mode header only.
|
||||
if(WIN32)
|
||||
set(HTTPlib_DIR ./lib/CMake/Windows)
|
||||
else()
|
||||
set(HTTPlib_DIR ./lib/CMake/Linux)
|
||||
endif()
|
||||
|
||||
find_package(HTTPlib REQUIRED)
|
||||
|
||||
if(HTTPlib_FOUND)
|
||||
message("lib HTTP Trouvé")
|
||||
else()
|
||||
message("lib HTTP Introuvable")
|
||||
endif()
|
||||
# ---------------------------------------
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/lib/CMake/Linux/")
|
||||
find_package(GUROBI REQUIRED)
|
||||
|
||||
|
||||
set_property(GLOBAL PROPERTY DEBUG_CONFIGURATIONS "Debug")
|
||||
|
||||
# Chemin executable
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin/${CMAKE_BUILD_TYPE}")
|
||||
|
||||
# On indique que l'on veut un exécutable nommé PROJECT compilé à partir des fichiers décrits par les variables SRCS et HEADERS.
|
||||
add_executable(${ORDO} ${SRCS_Ordo})
|
||||
add_executable(${INSGEN} ${SRCS_Insgen})
|
||||
|
||||
|
||||
add_library(Interface STATIC ${SRCS_Interface})
|
||||
add_library(Data STATIC ${SRCS_Model})
|
||||
add_library(Solver STATIC ${SRCS_Solver})
|
||||
add_library(Configuration STATIC ${SRCS_Config})
|
||||
add_library(Logs STATIC ${SRCS_Logs})
|
||||
add_library(Generator STATIC ${SRCS_Gen})
|
||||
add_library(Tester STATIC ${SRCS_Tester})
|
||||
|
||||
|
||||
add_dependencies(${ORDO} Interface Configuration Logs Data Solver Tester)
|
||||
add_dependencies(Interface Configuration Logs Data Solver Tester)
|
||||
add_dependencies(Solver Logs Configuration Data)
|
||||
add_dependencies(Data Logs Configuration)
|
||||
add_dependencies(Tester Solver Data Logs Configuration)
|
||||
|
||||
add_dependencies(${INSGEN} Data Logs Generator)
|
||||
|
||||
|
||||
|
||||
set_property(TARGET ${ORDO} PROPERTY CXX_STANDARD 17)
|
||||
set_property(TARGET Interface PROPERTY CXX_STANDARD 17)
|
||||
set_property(TARGET Data PROPERTY CXX_STANDARD 17)
|
||||
set_property(TARGET Solver PROPERTY CXX_STANDARD 17)
|
||||
set_property(TARGET Configuration PROPERTY CXX_STANDARD 17)
|
||||
set_property(TARGET Logs PROPERTY CXX_STANDARD 17)
|
||||
set_property(TARGET Tester PROPERTY CXX_STANDARD 17)
|
||||
|
||||
set_property(TARGET ${INSGEN} PROPERTY CXX_STANDARD 17)
|
||||
set_property(TARGET Generator PROPERTY CXX_STANDARD 17)
|
||||
|
||||
|
||||
|
||||
# Fichier include
|
||||
# CPLEX
|
||||
# JSONFMCPP
|
||||
include_directories(${JSONFMCPP_INCLUDE_DIRS})
|
||||
include_directories(${HTTPLIB_INCLUDE_DIRS})
|
||||
include_directories(${BOOSTGRAPH_INCLUDE_DIRS})
|
||||
#cppunit
|
||||
|
||||
include_directories(${GUROBI_INCLUDE_DIRS})
|
||||
|
||||
|
||||
# Fichier lib
|
||||
|
||||
|
||||
target_link_libraries(${ORDO}
|
||||
debug Interface
|
||||
optimized Interface
|
||||
)
|
||||
|
||||
target_link_libraries(${INSGEN}
|
||||
debug Generator
|
||||
optimized Generator
|
||||
)
|
||||
|
||||
target_link_libraries(Interface
|
||||
debug Solver
|
||||
optimized Solver
|
||||
debug Tester
|
||||
optimized Tester
|
||||
)
|
||||
|
||||
target_link_libraries(Generator
|
||||
debug Data
|
||||
optimized Data
|
||||
)
|
||||
|
||||
target_link_libraries(Solver
|
||||
debug ${CMAKE_DL_LIBS}
|
||||
optimized ${CMAKE_DL_LIBS}
|
||||
optimized ${GUROBI_CXX_LIBRARY}
|
||||
debug ${GUROBI_CXX_DEBUG_LIBRARY}
|
||||
optimized ${GUROBI_LIBRARY}
|
||||
debug ${GUROBI_LIBRARY}
|
||||
debug Data
|
||||
optimized Data
|
||||
)
|
||||
|
||||
target_link_libraries(Tester
|
||||
debug Solver
|
||||
optimized Solver
|
||||
)
|
||||
|
||||
target_link_libraries(Data
|
||||
debug Configuration
|
||||
optimized Configuration
|
||||
debug Logs
|
||||
optimized Logs
|
||||
)
|
||||
|
||||
# Fichier dll sous windows
|
||||
if(WIN32)
|
||||
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
|
||||
endif()
|
||||
|
||||
# Paramètre de compilation
|
||||
if (UNIX)
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
|
||||
set(CMAKE_CXX_FLAGS "-Wall -Wno-deprecated -Wno-write-strings -Wno-maybe-uninitialized -pthread")
|
||||
endif ()
|
||||
|
||||
foreach(source IN LISTS SRCS_Ordo)
|
||||
get_filename_component(source_path "${source}" PATH)
|
||||
STRING(REGEX REPLACE "${CMAKE_CURRENT_SOURCE_DIR}" "" source_path ${source_path})
|
||||
string(REPLACE "/" "\\" source_path_msvc "${source_path}")
|
||||
source_group("${source_path_msvc}" FILES "${source}")
|
||||
endforeach()
|
||||
|
||||
foreach(source IN LISTS SRCS_Interface)
|
||||
get_filename_component(source_path "${source}" PATH)
|
||||
STRING(REGEX REPLACE "${CMAKE_CURRENT_SOURCE_DIR}" "" source_path ${source_path})
|
||||
string(REPLACE "/" "\\" source_path_msvc "${source_path}")
|
||||
source_group("${source_path_msvc}" FILES "${source}")
|
||||
endforeach()
|
||||
|
||||
foreach(source IN LISTS SRCS_Solver)
|
||||
get_filename_component(source_path "${source}" PATH)
|
||||
STRING(REGEX REPLACE "${CMAKE_CURRENT_SOURCE_DIR}" "" source_path ${source_path})
|
||||
string(REPLACE "/" "\\" source_path_msvc "${source_path}")
|
||||
source_group("${source_path_msvc}" FILES "${source}")
|
||||
endforeach()
|
||||
|
||||
foreach(source IN LISTS SRCS_Config)
|
||||
get_filename_component(source_path "${source}" PATH)
|
||||
STRING(REGEX REPLACE "${CMAKE_CURRENT_SOURCE_DIR}" "" source_path ${source_path})
|
||||
string(REPLACE "/" "\\" source_path_msvc "${source_path}")
|
||||
source_group("${source_path_msvc}" FILES "${source}")
|
||||
endforeach()
|
||||
|
||||
foreach(source IN LISTS SRCS_Model)
|
||||
get_filename_component(source_path "${source}" PATH)
|
||||
STRING(REGEX REPLACE "${CMAKE_CURRENT_SOURCE_DIR}" "" source_path ${source_path})
|
||||
string(REPLACE "/" "\\" source_path_msvc "${source_path}")
|
||||
source_group("${source_path_msvc}" FILES "${source}")
|
||||
endforeach()
|
||||
|
||||
foreach(source IN LISTS SRCS_Logs)
|
||||
get_filename_component(source_path "${source}" PATH)
|
||||
STRING(REGEX REPLACE "${CMAKE_CURRENT_SOURCE_DIR}" "" source_path ${source_path})
|
||||
string(REPLACE "/" "\\" source_path_msvc "${source_path}")
|
||||
source_group("${source_path_msvc}" FILES "${source}")
|
||||
endforeach()
|
||||
|
||||
foreach(source IN LISTS SRCS_Insgen)
|
||||
get_filename_component(source_path "${source}" PATH)
|
||||
STRING(REGEX REPLACE "${CMAKE_CURRENT_SOURCE_DIR}" "" source_path ${source_path})
|
||||
string(REPLACE "/" "\\" source_path_msvc "${source_path}")
|
||||
source_group("${source_path_msvc}" FILES "${source}")
|
||||
endforeach()
|
||||
|
||||
foreach(source IN LISTS SRCS_Gen)
|
||||
get_filename_component(source_path "${source}" PATH)
|
||||
STRING(REGEX REPLACE "${CMAKE_CURRENT_SOURCE_DIR}" "" source_path ${source_path})
|
||||
string(REPLACE "/" "\\" source_path_msvc "${source_path}")
|
||||
source_group("${source_path_msvc}" FILES "${source}")
|
||||
endforeach()
|
||||
|
||||
foreach(source IN LISTS SRCS_Tester)
|
||||
get_filename_component(source_path "${source}" PATH)
|
||||
STRING(REGEX REPLACE "${CMAKE_CURRENT_SOURCE_DIR}" "" source_path ${source_path})
|
||||
string(REPLACE "/" "\\" source_path_msvc "${source_path}")
|
||||
source_group("${source_path_msvc}" FILES "${source}")
|
||||
endforeach()
|
||||
|
||||
|
||||
message(STATUS "Tree reorganized")
|
||||
|
||||
Reference in New Issue
Block a user