diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f5eb003a9c..588729c837 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -431,7 +431,7 @@ jobs: -DBUILD_PYTHON=${{ matrix.platform.build_python }} \ -DBUILD_EXAMPLES=ON \ ${{ env.PYTHON_DIR }} \ - ${{ env.SWIG_DIR }} + ${{ matrix.platform.build_python == 'ON' && env.SWIG_DIR || '' }} - name: Build and install RoadRunner shell: bash diff --git a/CMakeLists.txt b/CMakeLists.txt index 0e4c61dbfe..d37f9ecd79 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,14 +28,6 @@ project( LANGUAGES CXX C ) -if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.20") - # Source file extensions (.h/.cpp) do not need to be explicitly - # specified if CMP0115 set to OLD. - # New behavior requires all extensions be explicit - cmake_policy(SET CMP0115 OLD) -endif () - - if ("${CMAKE_SIZEOF_VOID_P}" STREQUAL "4") message(STATUS "Build on 32-bit platform") else () diff --git a/cmake/AddTestExecutable.cmake b/cmake/AddTestExecutable.cmake deleted file mode 100644 index 5c7fecc046..0000000000 --- a/cmake/AddTestExecutable.cmake +++ /dev/null @@ -1,70 +0,0 @@ -# Adds a new executable cmake target to cmake. -# Links roadrunner-static and gtest. -# Parameters: -# - TEST_TARGET: name of the binary -# - OUT_VARIABLE: list variable to append BINARY. Creates the list if not exist. -# - All further arguments are added to the binary as sources. -function(add_test_executable TEST_TARGET OUT_VARIABLE) - #message(STATUS "Adding test ${TEST_TARGET} as part of ${OUT_VARIABLE}. Source Files: ARGN: ${ARGN}" ) - add_executable(${TEST_TARGET} ${ARGN} $ - ${ThisSourceDirectory}/TestModelFactory) - - target_include_directories( - ${TEST_TARGET} PRIVATE - "${ThisSourceDirectory}" - "${ThisBinaryDirectory}" - "${MOCKUPS_DIRECTORY}" - "${RR_Python_wrapper_dir}" # for PyUtils in tests that need it - ) - - target_link_libraries(${TEST_TARGET} PRIVATE - roadrunner_c_api - roadrunner-static - rr-mockups - gtest gtest_main gmock gmock_main - ) - - # This causes a weird build error whereby it is no longer possible - # to name a class the name as the binary filename. However, since w - # link to roadrunner-static, the flags needed should be transitive - # add_compile_definitions(${TEST_TARGET} PRIVATE STATIC_RR) - - add_dependencies(${TEST_TARGET} roadrunner-static gtest gtest_main gmock gmock_main rr-mockups) - set_target_properties(${TEST_TARGET} PROPERTIES LINKER_LANGUAGE CXX) - - # Add to ctest. Uses gtest_add_tests (source parsing) rather than - # gtest_discover_tests (executes the binary at build/ctest time), since - # the latter is intermittently unreliable: it can fail with a - # ParseTestList.cmake JSON error if the freshly-built binary doesn't run - # cleanly on its first invocation. - set(TEST_ENV_VARS "testdir=${RR_ROOT}/test" "CTEST_OUTPUT_ON_FAILURE=TRUE") - gtest_add_tests( - TARGET ${TEST_TARGET} - SOURCES ${ARGN} - WORKING_DIRECTORY $ - TEST_LIST ${TEST_TARGET}_GTESTS - ) - set_tests_properties(${${TEST_TARGET}_GTESTS} PROPERTIES - TIMEOUT 500 - ENVIRONMENT "${TEST_ENV_VARS}" - ) - - set_target_properties(${TEST_TARGET} PROPERTIES ENVIRONMENT - "testdir=${RR_ROOT}/test") - - - if (WIN32) - add_definitions(/bigobj) - endif () - - # helpful for debugging this function - # message(STATUS "OUT_VARIABLE; ${${OUT_VARIABLE}} ${OUT_VARIABLE} OUT_VARIABLE" ) - - if ("${${OUT_VARIABLE}}" STREQUAL "") - set(${OUT_VARIABLE} "${TEST_TARGET}" PARENT_SCOPE) - else () - set(${OUT_VARIABLE} "${${OUT_VARIABLE}}" "${TEST_TARGET}" PARENT_SCOPE) - endif () - -endfunction() - diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index c7d8f9e1a5..571dbbb24a 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -37,7 +37,7 @@ set(SBMLTestSuiteStochastic "${SBMLTestSuiteRoot}/stochastic") function(add_test_executable TEST_TARGET OUT_VARIABLE) #message(STATUS "Adding test ${TEST_TARGET} as part of ${OUT_VARIABLE}. Source Files: ARGN: ${ARGN}" ) add_executable(${TEST_TARGET} ${ARGN} $ - ${ThisSourceDirectory}/TestModelFactory) + ${ThisSourceDirectory}/TestModelFactory.cpp) if (TEST_TARGET MATCHES ".*plugin.*") set(TEST_PLUGIN_INCLUDE "$") diff --git a/wrappers/Python/roadrunner/CMakeLists.txt b/wrappers/Python/roadrunner/CMakeLists.txt index 40ada3a3ea..f4b1c5beb1 100644 --- a/wrappers/Python/roadrunner/CMakeLists.txt +++ b/wrappers/Python/roadrunner/CMakeLists.txt @@ -95,7 +95,7 @@ target_include_directories(roadrunner_python PUBLIC if (WIN32) target_compile_definitions(roadrunner_python PRIVATE EXPORT_RRC STATIC_RR) - swig_link_libraries(roadrunner_python + target_link_libraries(roadrunner_python roadrunner-static "${Python_LIBRARIES}" ) @@ -103,7 +103,7 @@ if (WIN32) set_target_properties(roadrunner_python PROPERTIES SUFFIX ".pyd") elseif (UNIX AND NOT APPLE) # Linux specific code - swig_link_libraries(roadrunner_python + target_link_libraries(roadrunner_python roadrunner-static ${Python_LIBRARIES} @@ -120,7 +120,7 @@ elseif (APPLE) INSTALL_RPATH "@loader_path/../../lib;@loader_path/" INSTALL_NAME_DIR "@rpath") # we use roadrunner not roadrunner-static so we can use shared libraries at runtime - swig_link_libraries(roadrunner_python + target_link_libraries(roadrunner_python roadrunner-static ## ${Python_LIBRARIES} )