update cmakelists

This commit is contained in:
张壹 2021-01-04 20:57:28 +08:00
parent 2ff925cdc4
commit 71d0a5e3aa
2 changed files with 44 additions and 26 deletions

View File

@ -2,8 +2,28 @@ cmake_minimum_required(VERSION 3.15.2)
#
project(LIBLBFGS VERSION 1.1.0)
# homebrew
set(CMAKE_INSTALL_PREFIX /usr/local)
if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Linux")
message(STATUS "Platform: " ${CMAKE_HOST_SYSTEM_NAME})
set(CMAKE_INSTALL_PREFIX "/usr/local")
elseif (${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Darwin")
message(STATUS "Platform: " ${CMAKE_HOST_SYSTEM_NAME})
set(CMAKE_INSTALL_PREFIX "/usr/local")
elseif (${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Windows")
message(STATUS "Platform: " ${CMAKE_HOST_SYSTEM_NAME})
set(CMAKE_C_COMPILER gcc)
set(CMAKE_CXX_COMPILER g++)
# CMakeUNIX 使
set(CMAKE_INSTALL_PREFIX "D:/Library")
else()
message(STATUS "Platform: " ${CMAKE_HOST_SYSTEM_NAME})
set(CMAKE_INSTALL_PREFIX "/usr/local")
endif()
message(STATUS "Install prefix: " ${CMAKE_INSTALL_PREFIX})
#
add_subdirectory(src/)
#
option(HAVE_CONFIG_H "use config.h" ON)
option(_MSC_VER "use __msc_ver" OFF)
@ -13,5 +33,3 @@ configure_file(
"${PROJECT_SOURCE_DIR}/config.h.in"
"${PROJECT_SOURCE_DIR}/src/lib/config.h"
)
#
add_subdirectory(src/)

View File

@ -17,20 +17,27 @@ set_target_properties(lbfgs PROPERTIES VERSION 1.1 SOVERSION 1.1)
#
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
# LINUXmath
message("-- Operating system: ${CMAKE_SYSTEM}")
if(UNIX AND NOT APPLE)
message("-- Linking math library.")
message(STATUS "Linking math library.")
find_library(MATH_LIBRARY m)
find_library(MATH_A_LIBRARY libm.a)
target_link_libraries(lbfgs PUBLIC ${MATH_LIBRARY})
target_link_libraries(lbfgs_static ${MATH_A_LIBRARY})
endif()
#
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
#
install(TARGETS lbfgs lbfgs_static
if(WIN32)
install(TARGETS lbfgs DESTINATION lib)
install(TARGETS lbfgs_static DESTINATION lib)
else()
install(TARGETS lbfgs lbfgs_static
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
endif()
#
install(FILES lib/lbfgs.h DESTINATION include)
@ -38,23 +45,16 @@ install(FILES lib/lbfgs.h DESTINATION include)
#
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
#
add_executable(lbfgs_sample sample/sample.c)
#
set_target_properties(lbfgs_sample PROPERTIES INSTALL_RPATH "/usr/local/lib")
#
target_link_libraries(lbfgs_sample PUBLIC lbfgs)
#
macro(add_sample name file)
#
add_executable(${name} sample/${file})
# Windows
set_target_properties(${name} PROPERTIES INSTALL_RPATH "/usr/local/lib")
#
target_link_libraries(${name} PUBLIC lbfgs)
endmacro()
#
add_executable(lbfgs_sample2 sample/sample2.cpp)
#
set_target_properties(lbfgs_sample2 PROPERTIES INSTALL_RPATH "/usr/local/lib")
#
target_link_libraries(lbfgs_sample2 PUBLIC lbfgs)
#
add_executable(lbfgs_sample3 sample/sample3.cpp)
#
set_target_properties(lbfgs_sample3 PROPERTIES INSTALL_RPATH "/usr/local/lib")
#
target_link_libraries(lbfgs_sample3 PUBLIC lbfgs)
add_sample(lbfgs_sample sample.c)
add_sample(lbfgs_sample2 sample2.cpp)
add_sample(lbfgs_sample3 sample3.cpp)