Skip to content

Commit

Permalink
cmp - conan works
Browse files Browse the repository at this point in the history
  • Loading branch information
claudioperez committed Sep 24, 2021
1 parent 6b49339 commit f727e40
Show file tree
Hide file tree
Showing 6 changed files with 962 additions and 34 deletions.
17 changes: 17 additions & 0 deletions .github/workflows/build_cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,23 @@ jobs:
build-win32:
name: Build on Windows
runs-on: [windows]
steps:
- name: Checkout sources
uses: actions/checkout@v2
with: {ref: cmake-build}

#- name: Install package manager
# run: |
# cd .. git clone https://github.com/Microsoft/vcpkg.git
# cd vcpkg
# git checkout --force 2020.01
# .\bootstrap-vcpkg.bat
# .\vcpkg.exe install cppzmq:x64-windows

- name: Install Conan
uses: turtlebrowser/get-conan@main

- name: Build
run: |
mkdir build
Expand Down
2 changes: 1 addition & 1 deletion DEVELOPER/element/cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
opensees_elements(OPS_Dev_Truss_CPP
opensees_elements(OPS_Dev_Truss_CPP EXTERNAL
SOURCES Truss2D.cpp
)
5 changes: 3 additions & 2 deletions ETC/cmake/OpenSeesDependenciesUnix.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,9 @@
# - LIBRARY <path/to/lib.a> INCLUDE <path/to/include/>
#
#----------------------------------------------------------------
opensees_load(TCL FIND
)
opensees_load(TCL CONAN tcl/8.6.10)
#opensees_load(TCL FIND
#)

set(TCL_LIBRARIES ${TCL_LIBRARY})

Expand Down
7 changes: 3 additions & 4 deletions ETC/cmake/OpenSeesDependenciesWin.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,9 @@ set(CONDA_DIR "C:/Users/claud/miniconda3")
set(CONDA_ENV "C:/Users/claud/miniconda3/envs/sim")
set(BUNDLE_LIBS "${PROJECT_SOURCE_DIR}/Win64/lib/debug/")

opensees_load(TCL
LIBRARY ${CONDA_DIR}/Library/lib/tcl86t.lib
#LIBRARY "${BUNDLE_LIBS}/tcl.lib"
INCLUDE ${CONDA_DIR}/Library/include
opensees_load(TCL CONAN tcl/8.6.10
#LIBRARY ${CONDA_DIR}/Library/lib/tcl86t.lib
#INCLUDE ${CONDA_DIR}/Library/include
)

set(TCL_INCLUDE_PATH ${TCL_INCLUDE_DIRS})
Expand Down
64 changes: 37 additions & 27 deletions ETC/cmake/OpenSeesFunctions.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Claudio Perez
#include(conan.cmake)

function (opensees_library elemlib)
# opensees_library(<lib_name> [REQUIRES <requirement>] <sources>...)
Expand Down Expand Up @@ -66,54 +67,63 @@ function (opensees_load lib_name)
cmake_parse_arguments(
PARSE_ARGV 1
OPS_LOAD_ARG # prefix of output variables
"BUILD;FIND" # list of names of the boolean arguments (only defined ones will be true)
"BUNDLED;LIBRARY;INCLUDE" # list of names of mono-valued arguments
"PATHS;AS" # list of names of multi-valued arguments (output variables are lists)
"BUILD;FIND" # boolean arguments (only defined ones will be true)
"BUNDLED;LIBRARY;CONAN;INCLUDE" # mono-valued arguments
"PATHS;AS" # multi-valued arguments (output variables are lists)
)
set(OPS_PKG_FOUND_VAR "${lib_name}_FOUND")# PARENT_SCOPE)
set(${OPS_PKG_FOUND_VAR} FALSE)# PARENT_SCOPE)
set(OPS_PKG_FOUND_VAR "${lib_name}_FOUND")
set(${OPS_PKG_FOUND_VAR} FALSE)

if(OPS_LOAD_ARG_CONAN)
if(NOT ${${OPS_PKG_FOUND_VAR}})
#message(">>> >>> ${OPS_LOAD_ARG_CONAN}")
conan_cmake_configure(REQUIRES ${OPS_LOAD_ARG_CONAN}
#BASIC_SETUP CMAKE_TARGETS
#BUILD missing
)
conan_cmake_install(PATH_OR_REFERENCE . BUILD missing )#REMOTE conan-center)
endif()
endif()

if(OPS_LOAD_ARG_LIBRARY)
if(NOT ${${OPS_PKG_FOUND_VAR}})
message("OPS >>> ${lib_name}")
set("${lib_name}_LIBRARIES" ${OPS_LOAD_ARG_LIBRARY})# PARENT_SCOPE)
set("${lib_name}_INCLUDE_DIRS" ${OPS_LOAD_ARG_INCLUDE})# PARENT_SCOPE)
endif()
if(NOT ${${OPS_PKG_FOUND_VAR}})
message("OPS >>> ${lib_name}")
set("${lib_name}_LIBRARIES" ${OPS_LOAD_ARG_LIBRARY})
set("${lib_name}_INCLUDE_DIRS" ${OPS_LOAD_ARG_INCLUDE})
endif()
endif()

if(OPS_LOAD_ARG_PATHS)
message("Provided ${lib_name} paths are:")
foreach(src ${OPS_LOAD_ARG_PATHS})
message("- ${src}")
endforeach(src)
find_package(${lib_name} PATHS ${OPS_LOAD_ARG_PATHS})
message("Provided ${lib_name} paths are:")
foreach(src ${OPS_LOAD_ARG_PATHS})
message("- ${src}")
endforeach(src)
find_package(${lib_name} PATHS ${OPS_LOAD_ARG_PATHS})
endif()

if(OPS_LOAD_ARG_FIND)
if(NOT ${${OPS_PKG_FOUND_VAR}})
message("OPS >>> find_package(${lib_name})")
find_package(${lib_name})
message("OPS >>> status: ${OPS_PKG_FOUND_VAR}=${${OPS_PKG_FOUND_VAR}}")
endif()
endif()
endif()

if(OPS_LOAD_ARG_BUNDLED)
if(NOT ${${OPS_PKG_FOUND_VAR}})
message("OPS >>> Building OpenSees bundled ${lib_name}")
set(${OPS_PKG_FOUND_VAR} TRUE PARENT_SCOPE)
#opensees_build(${lib_name})
add_subdirectory("${OPS_LOAD_ARG_BUNDLED}")
include_directories("${OPS_LOAD_ARG_BUNDLED}")
#set("${lib_name}_INCLUDE_DIRS" ${OPS_LOAD_ARG_BUNDLED}/ PARENT_SCOPE)
set("${lib_name}_LIBRARIES" "${lib_name}")
endif()
if(NOT ${${OPS_PKG_FOUND_VAR}})
#message("OPS >>> Building OpenSees bundled ${lib_name}")
set(${OPS_PKG_FOUND_VAR} TRUE PARENT_SCOPE)
add_subdirectory("${OPS_LOAD_ARG_BUNDLED}")
include_directories("${OPS_LOAD_ARG_BUNDLED}")
set("${lib_name}_LIBRARIES" "${lib_name}")
endif()
endif()

set("${lib_name}_LIBRARIES" ${${lib_name}_LIBRARIES} PARENT_SCOPE)
set("${lib_name}_INCLUDE_DIRS" ${${lib_name}_INCLUDE_DIRS} PARENT_SCOPE)
target_compile_definitions(OPS_External_packages INTERFACE "OPSDEF_${lib_name}")
message(" status: ${lib_name}_LIBRARIES =${${lib_name}_LIBRARIES}")
message(" status: ${lib_name}_INCLUDE_DIRS =${${lib_name}_INCLUDE_DIRS}\n")
#message(" status: ${lib_name}_LIBRARIES =${${lib_name}_LIBRARIES}")
#message(" status: ${lib_name}_INCLUDE_DIRS =${${lib_name}_INCLUDE_DIRS}\n")
endfunction()

function (opensees_build lib_name)
Expand Down
Loading

0 comments on commit f727e40

Please sign in to comment.