diff --git a/cmake/Modules/YAML.cmake b/cmake/Modules/YAML.cmake index c50773568c..77ee804111 100644 --- a/cmake/Modules/YAML.cmake +++ b/cmake/Modules/YAML.cmake @@ -6,15 +6,27 @@ set(YAML_MD5 "bb15429d8fb787e7d3f1c83ae129a999" CACHE STRING "MD5 checksum of li mark_as_advanced(YAML_URL) mark_as_advanced(YAML_MD5) +# support cross-compilation to windows +if(CMAKE_CROSSCOMPILING AND (CMAKE_SYSTEM_NAME STREQUAL "Windows")) + if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86") + set(YAML_CROSS_HOST --host=i686-mingw64) + elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + set(YAML_CROSS_HOST --host=x86_64-mingw64) + else() + message(FATAL_ERROR "Unsupported cross-compilation " + " for ${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}" + " on ${CMAKE_HOST_SYSTEM}/${CMAKE_HOST_SYSTEM_PROCESSOR}") + endif() +endif() + ExternalProject_Add(libyaml URL ${YAML_URL} URL_MD5 ${YAML_MD5} SOURCE_DIR "${CMAKE_BINARY_DIR}/yaml-src" BINARY_DIR "${CMAKE_BINARY_DIR}/yaml-build" CONFIGURE_COMMAND /configure ${CONFIGURE_REQUEST_PIC} - CXX=${CMAKE_CXX_COMPILER} - CC=${CMAKE_C_COMPILER} - --prefix= --disable-shared + CXX=${CMAKE_CXX_COMPILER} CC=${CMAKE_C_COMPILER} + --prefix= --disable-shared ${YAML_CROSS_HOST} BUILD_BYPRODUCTS /lib/libyaml${CMAKE_STATIC_LIBRARY_SUFFIX} TEST_COMMAND "") diff --git a/unittest/cplusplus/test_lammps_class.cpp b/unittest/cplusplus/test_lammps_class.cpp index 04ad403db6..5288cfc2b6 100644 --- a/unittest/cplusplus/test_lammps_class.cpp +++ b/unittest/cplusplus/test_lammps_class.cpp @@ -362,7 +362,11 @@ TEST(LAMMPS_init, NoOpenMP) FILE *fp = fopen("in.lammps_class_noomp", "w"); fputs("\n", fp); fclose(fp); +#if defined(__WIN32) + _putenv("OMP_NUM_THREADS"); +#else unsetenv("OMP_NUM_THREADS"); +#endif const char *args[] = {"LAMMPS_init", "-in", "in.lammps_class_noomp", "-log", "none", "-nocite"}; char **argv = (char **)args; diff --git a/unittest/force-styles/CMakeLists.txt b/unittest/force-styles/CMakeLists.txt index 2c0977397a..86b0f4fdaf 100644 --- a/unittest/force-styles/CMakeLists.txt +++ b/unittest/force-styles/CMakeLists.txt @@ -26,7 +26,7 @@ set(TEST_INPUT_FOLDER ${CMAKE_CURRENT_SOURCE_DIR}/tests) add_library(style_tests STATIC yaml_writer.cpp error_stats.cpp test_config_reader.cpp test_main.cpp) target_compile_definitions(style_tests PRIVATE -DTEST_INPUT_FOLDER=${TEST_INPUT_FOLDER}) target_include_directories(style_tests PRIVATE ${LAMMPS_SOURCE_DIR}) -target_link_libraries(style_tests PUBLIC GTest::GTest GTest::GMock Yaml::Yaml) +target_link_libraries(style_tests PUBLIC GTest::GTest GTest::GMock Yaml::Yaml lammps) if(BUILD_MPI) target_link_libraries(style_tests PUBLIC MPI::MPI_CXX) else() diff --git a/unittest/fortran/CMakeLists.txt b/unittest/fortran/CMakeLists.txt index fe63802e8b..9bd6c8f419 100644 --- a/unittest/fortran/CMakeLists.txt +++ b/unittest/fortran/CMakeLists.txt @@ -7,6 +7,7 @@ endif() include(CheckLanguage) check_language(Fortran) if(CMAKE_Fortran_COMPILER) + enable_language(C) enable_language(Fortran) get_filename_component(LAMMPS_FORTRAN_MODULE ${LAMMPS_SOURCE_DIR}/../fortran/lammps.f90 ABSOLUTE) if(BUILD_MPI)