resdata
resdata copied to clipboard
Using pip install libecl on Window?
Hello, I am wondering if there is any clearer instruction of installing libecl on window? Thank you.
You need to have some C++ compiler (eg. Visual Studio 2015+), CMake, Python and git. Open a new command prompt (or powershell), make sure all are accessible, and then you should be able to follow the same steps as the Linux/macOS install.
Also see the appveyor config: https://github.com/equinor/libecl/blob/master/appveyor.yml
If I am using jupyter notebook by Anaconda, then I just need to do the installation of Visual Studio 2015+, CMake, Python and git on the Anaconda prompt? Then after that I am able to pip install the libecl?
The simplest thing you can do is use WSL, which installs an Ubuntu VM that you can interact with as a Windows user. Then simply pip install libecl
.
Unfortunately, you can't pip install libecl on normal Windows at this moment. You need to follow the Alternative 3 installation guide if you want to have a native solution. (If you do end up getting this working I'd be very happy to include the steps you used in the README)
So I was able to get a pretty easy install going for v2.9.4. I have msvc.exe from VS 2017 installed and I edited the setup.py
to include a windows platform specific link the compiled library.
def dlopen_libecl():
import ctypes
import platform
path = os.path.join(os.path.dirname(__file__), ".libs")
if platform.system() == "Linux":
path = os.path.join(path, "libecl.so")
elif platform.system() == "Darwin":
path = os.path.join(path, "libecl.dylib")
elif platform.system() == "Windows":
path = os.path.join(os.path.dirname(__file__), ".bin", "libecl.dll")**
else:
raise NotImplementedError("Invalid platform")
I'm not sure why but with the Windows compiler the dll ends up in the bin folder, not .libs.
This then works by running
python setup.py install
in the top level directory.
I've never had an issue with the ecl functionality under windows, is there a reason we can't add a windows wheel to pypi deployment pipeline?
@trhallam The almost same patch for finding libecl on Windows is merged now as https://github.com/equinor/ecl/pull/752, and will be present in upcoming release(s). I definitely see the issue on Windows with EclKW, the same as your https://github.com/equinor/ecl/issues/604
The reason we don't have a Windows wheel is because of lack of time really (and because internally nobody uses Windows for libecl-related stuff). I've recently acquired Windows 10 + Visual Studio licenses so I'll set it up it when time allows. It's in my backlog. :)
Awesome, understand @dotfloat about the time thing. If I can help out somehow just let me know.
I gave it another try and didn't get anywhere. Was trying to get the Python bindings to work at all. I have the Python from Windows 10 store (3.9, x64). Successfully built with pip install .
using MSVC 2019. However, when importing ecl
it fails when trying to load the libecl.dll
file, complaining that it's not a valid DLL. I'm assuming there's a mismatch between the architectures, ie. libecl.dll
is x86.
How did you get it to work?
For the record, in order to get automated PyPI builds I need to figure out:
- Compile and test
libecl.dll
by itself using the C Tests. - Figure out whether I need to compile two different Windows packages, one for x86 and for x64.
- Build with
pip wheel .
- Test using
pytest python/tests -v
(Basically, I need add Windows to all of the steps in the Github Actions workflow, https://github.com/equinor/ecl/blob/master/.github/workflows/testing.yml)
I'm on x64 windows. I'm not sure I have a 32bit MSVC compiler so it may just be suited to my system. I suspect you will need an architecture specific dll.
I'll make a fork and have a look at the Github Actions workflow.
@dotfloat , so here is the rub. I don't think Github actions provides any 32bit images. So we can build a 32 bit windows lib, but we can't test it on the build system. Do you want to offer 32 bit libs? I don't think you do that for ubuntu or mac at the moment.
If you are happy to go with 64bit only I can modify the workflow and submit a pull request once it is tested in my fork.
To my knowledge, MSVC provides both x86 and x64 compilers, and x86 Python should work on x64, so as long as Github provides a x64 image, then we're set.
We don't provide x86 Linux or macOS builds because both have had excellent x64 support. Whereas in the Windows world people still depend on x86 working. It could be my own bias though. It's not something that I want to support, but I'll have to ask around whether it's something we want to support.
The Python installed via the Microsoft store is x64, which is fine. Seems like either https://github.com/scikit-build/scikit-build or ninja
have some bug that builds an x86 .dll
, but I'm not certain.
If you can do the 64-bit then ye, would be great to have a PR on it!
Oh ok,
Well, using the same setup as on Github (VS 2019 v16) I have to modify the cmake command like this.
mkdir cmake-build
cmake -S . -B cmake-build -G "Visual Studio 16 2019" -A "x64" -DBUILD_TESTS=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build cmake-build
Which passes fine. But then I get errors in ctest
PS C:\dev\source\ecl\cmake-build> $Env:ECL_SKIP_SIGNAL = "absolutely"
PS C:\dev\source\ecl\cmake-build> $Env:ERT_SHOW_BACKTRACE = "yes please!"
PS C:\dev\source\ecl\cmake-build> ctest --output-on-failure
Test project C:/dev/source/ecl/cmake-build
Start 1: ert_util_alloc_file_components
Test not available without configuration. (Missing "-C <config>"?)
1/114 Test #1: ert_util_alloc_file_components .......***Not Run 0.00 sec
Start 2: ert_util_split_path
Test not available without configuration. (Missing "-C <config>"?)
2/114 Test #2: ert_util_split_path ..................***Not Run 0.00 sec
Start 3: ert_util_approx_equal
Test not available without configuration. (Missing "-C <config>"?)
3/114 Test #3: ert_util_approx_equal ................***Not Run 0.00 sec
Start 4: ert_util_before_after
Test not available without configuration. (Missing "-C <config>"?)
4/114 Test #4: ert_util_before_after ................***Not Run 0.00 sec
Start 5: ert_util_binary_split
You're outside the build dir:
ctest -C cmake-build --output-on-failure
The previous post was in the build dir cmake-build
no? You have the line cd cmake-build
in the run tests
actions.
Anyway, I tried a few different configurations of the command in the project and build directory. Still no joy.
PS C:\dev\source\ecl> ctest -C cmake-build --output-on-failure
Test project C:/dev/source/ecl
No tests were found!!!
PS C:\dev\source\ecl> cd cmake-build
PS C:\dev\source\ecl\cmake-build> ctest -C cmake-build --output-on-failure
Test project C:/dev/source/ecl/cmake-build
Start 1: ert_util_alloc_file_components
Test not available in configuration "cmake-build".
1/114 Test #1: ert_util_alloc_file_components .......***Not Run 0.00 sec
Start 2: ert_util_split_path
Test not available in configuration "cmake-build".
...
Errors while running CTest
PS C:\dev\source\ecl\cmake-build> ctest --output-on-failure
Test project C:/dev/source/ecl/cmake-build
Start 1: ert_util_alloc_file_components
Test not available without configuration. (Missing "-C <config>"?)
1/114 Test #1: ert_util_alloc_file_components .......***Not Run 0.00 sec
Start 2: ert_util_split_path
Test not available without configuration. (Missing "-C <config>"?)
Oh, it seems to be a build configuration. I think it's -C Release
or -C "x64 Release"
or something. It's the MSVC build configuration.
Ok cool, making progress.
I had to add the dll directory to the path in powershell
cd cmake-build
$Env:Path += ";"+$pwd+"\lib\Debug"
ctests --output-on-failure -C Debug
There are some test failures:
PS C:\dev\source\ecl\cmake-build> ctest --output-on-failure -C Debug
Test project C:/dev/source/ecl/cmake-build
Start 1: ert_util_alloc_file_components
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_alloc_file_components.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_alloc_file_components.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_alloc_file_components.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_alloc_file_components.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_alloc_file_components.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_alloc_file_components.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_alloc_file_components.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_alloc_file_components.exe
1/114 Test #1: ert_util_alloc_file_components .......***Not Run 0.00 sec
Start 2: ert_util_split_path
2/114 Test #2: ert_util_split_path ..................***Failed 0.01 sec
Strings not equal atC:\dev\source\ecl\lib\util\tests\ert_util_split_path.cpp:31 (path != )
Start 3: ert_util_approx_equal
3/114 Test #3: ert_util_approx_equal ................ Passed 0.01 sec
Start 4: ert_util_before_after
4/114 Test #4: ert_util_before_after ................ Passed 0.01 sec
Start 5: ert_util_binary_split
5/114 Test #5: ert_util_binary_split ................ Passed 0.01 sec
Start 6: ert_util_buffer
6/114 Test #6: ert_util_buffer ...................... Passed 0.01 sec
Start 7: ert_util_clamp
7/114 Test #7: ert_util_clamp ....................... Passed 0.01 sec
Start 8: ert_util_chdir
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_chdir.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_chdir.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_chdir.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_chdir.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_chdir.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_chdir.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_chdir.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_chdir.exe
8/114 Test #8: ert_util_chdir .......................***Not Run 0.00 sec
Start 9: ert_util_filename
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_filename.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_filename.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_filename.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_filename.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_filename.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_filename.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_filename.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_filename.exe
9/114 Test #9: ert_util_filename ....................***Not Run 0.00 sec
Start 10: ert_util_hash_test
10/114 Test #10: ert_util_hash_test ................... Passed 0.01 sec
Start 11: ert_util_parent_path
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_parent_path.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_parent_path.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_parent_path.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_parent_path.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_parent_path.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_parent_path.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_parent_path.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_parent_path.exe
11/114 Test #11: ert_util_parent_path .................***Not Run 0.00 sec
Start 12: ert_util_realpath
12/114 Test #12: ert_util_realpath .................... Passed 0.01 sec
Start 13: ert_util_relpath_test
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_relpath_test.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_relpath_test.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_relpath_test.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_relpath_test.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_relpath_test.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_relpath_test.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_relpath_test.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_relpath_test.exe
13/114 Test #13: ert_util_relpath_test ................***Not Run 0.00 sec
Start 14: ert_util_rng
14/114 Test #14: ert_util_rng ......................... Passed 0.01 sec
Start 15: ert_util_sscan_test
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_sscan_test.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_sscan_test.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_sscan_test.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_sscan_test.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_sscan_test.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_sscan_test.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_sscan_test.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_sscan_test.exe
15/114 Test #15: ert_util_sscan_test ..................***Not Run 0.00 sec
Start 16: ert_util_statistics
16/114 Test #16: ert_util_statistics .................. Passed 0.01 sec
Start 17: ert_util_strcat_test
17/114 Test #17: ert_util_strcat_test ................. Passed 0.01 sec
Start 18: ert_util_stringlist_test
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_stringlist_test.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_stringlist_test.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_stringlist_test.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_stringlist_test.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_stringlist_test.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_stringlist_test.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_stringlist_test.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_stringlist_test.exe
18/114 Test #18: ert_util_stringlist_test .............***Not Run 0.00 sec
Start 19: ert_util_string_util
19/114 Test #19: ert_util_string_util ................. Passed 0.01 sec
Start 20: ert_util_strstr_int_format
20/114 Test #20: ert_util_strstr_int_format ........... Passed 0.01 sec
Start 21: ert_util_type_vector_functions
21/114 Test #21: ert_util_type_vector_functions ....... Passed 0.02 sec
Start 22: ert_util_vector_test
22/114 Test #22: ert_util_vector_test ................. Passed 0.01 sec
Start 23: ert_util_datetime
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_datetime.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_datetime.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_datetime.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_datetime.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_datetime.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_datetime.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_datetime.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_datetime.exe
23/114 Test #23: ert_util_datetime ....................***Not Run 0.00 sec
Start 24: ert_util_normal_path
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_normal_path.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_normal_path.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_normal_path.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_normal_path.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_normal_path.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_normal_path.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_normal_path.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_normal_path.exe
24/114 Test #24: ert_util_normal_path .................***Not Run 0.00 sec
Start 25: ert_util_mkdir_p
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_mkdir_p.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_mkdir_p.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_mkdir_p.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_mkdir_p.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_mkdir_p.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_mkdir_p.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_mkdir_p.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_mkdir_p.exe
25/114 Test #25: ert_util_mkdir_p .....................***Not Run 0.00 sec
Start 26: test_area
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/test_area.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/test_area.exe
C:/dev/source/ecl/cmake-build/bin/Debug/test_area.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/test_area.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/test_area.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/test_area.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/test_area.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/test_area.exe
26/114 Test #26: test_area ............................***Not Run 0.00 sec
Start 27: ecl_smspec_node
27/114 Test #27: ecl_smspec_node ...................... Passed 0.01 sec
Start 28: ert_util_work_area
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_work_area.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_work_area.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_work_area.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_work_area.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_work_area.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_work_area.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_work_area.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_work_area.exe
28/114 Test #28: ert_util_work_area ...................***Not Run 0.00 sec
Start 29: ert_util_cwd_test
29/114 Test #29: ert_util_cwd_test ....................***Failed 8.47 sec
-----------------------------------------------------------------
A fatal error has been detected and the program will abort.
Current executable : <Not set>
Version info : <Not set>
Error message: Abort called from: "????" (C:\dev\source\ecl\lib\util\util.c:728)
"????": Internal error - function not properly implmented on Windows
-----------------------------------------------------------------
Aborting ...
Assertion failed: 0, file C:\dev\source\ecl\lib\util\util_abort_simple.c, line 33
Start 30: ert_util_copy_file
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_copy_file.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_copy_file.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_copy_file.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_copy_file.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_copy_file.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_copy_file.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_copy_file.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_copy_file.exe
30/114 Test #30: ert_util_copy_file ...................***Not Run 0.00 sec
Start 31: ert_util_file_readable
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_file_readable.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_file_readable.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_file_readable.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_file_readable.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_file_readable.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_file_readable.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_file_readable.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_file_readable.exe
31/114 Test #31: ert_util_file_readable ...............***Not Run 0.00 sec
Start 32: ert_util_path_stack_test
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_path_stack_test.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_path_stack_test.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_path_stack_test.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_path_stack_test.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ert_util_path_stack_test.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_path_stack_test.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_path_stack_test.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ert_util_path_stack_test.exe
32/114 Test #32: ert_util_path_stack_test .............***Not Run 0.00 sec
Start 33: ecl_alloc_cpgrid
33/114 Test #33: ecl_alloc_cpgrid ..................... Passed 0.01 sec
Start 34: ecl_alloc_grid_dxv_dyv_dzv
34/114 Test #34: ecl_alloc_grid_dxv_dyv_dzv ........... Passed 0.02 sec
Start 35: ecl_fault_block_layer
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_fault_block_layer.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_fault_block_layer.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_fault_block_layer.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_fault_block_layer.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_fault_block_layer.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_fault_block_layer.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_fault_block_layer.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_fault_block_layer.exe
35/114 Test #35: ecl_fault_block_layer ................***Not Run 0.00 sec
Start 36: ecl_util_path_access
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_util_path_access.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_util_path_access.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_util_path_access.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_util_path_access.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_util_path_access.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_util_path_access.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_util_path_access.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_util_path_access.exe
36/114 Test #36: ecl_util_path_access .................***Not Run 0.00 sec
Start 37: ecl_grid_add_nnc
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_add_nnc.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_add_nnc.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_add_nnc.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_grid_add_nnc.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_grid_add_nnc.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_add_nnc.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_add_nnc.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_add_nnc.exe
37/114 Test #37: ecl_grid_add_nnc .....................***Not Run 0.00 sec
Start 38: ecl_grid_copy
38/114 Test #38: ecl_grid_copy ........................ Passed 0.01 sec
Start 39: ecl_grid_create
39/114 Test #39: ecl_grid_create ...................... Passed 0.03 sec
Start 40: ecl_grid_DEPTHZ
40/114 Test #40: ecl_grid_DEPTHZ ...................... Passed 0.11 sec
Start 41: ecl_grid_fwrite
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_fwrite.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_fwrite.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_fwrite.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_grid_fwrite.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_grid_fwrite.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_fwrite.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_fwrite.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_fwrite.exe
41/114 Test #41: ecl_grid_fwrite ......................***Not Run 0.00 sec
Start 42: ecl_grid_unit_system
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_unit_system.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_unit_system.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_unit_system.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_grid_unit_system.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_grid_unit_system.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_unit_system.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_unit_system.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_unit_system.exe
42/114 Test #42: ecl_grid_unit_system .................***Not Run 0.00 sec
Start 43: ecl_grid_export
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_export.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_export.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_export.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_grid_export.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_grid_export.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_export.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_export.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_export.exe
43/114 Test #43: ecl_grid_export ......................***Not Run 0.00 sec
Start 44: ecl_grid_init_fwrite
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_init_fwrite.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_init_fwrite.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_init_fwrite.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_grid_init_fwrite.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_grid_init_fwrite.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_init_fwrite.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_init_fwrite.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_init_fwrite.exe
44/114 Test #44: ecl_grid_init_fwrite .................***Not Run 0.00 sec
Start 45: ecl_grid_reset_actnum
45/114 Test #45: ecl_grid_reset_actnum ................ Passed 0.01 sec
Start 46: ecl_grid_ext_actnum
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_ext_actnum.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_ext_actnum.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_ext_actnum.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_grid_ext_actnum.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_grid_ext_actnum.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_ext_actnum.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_ext_actnum.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_grid_ext_actnum.exe
46/114 Test #46: ecl_grid_ext_actnum ..................***Not Run 0.00 sec
Start 47: ecl_nnc_export_intersect
47/114 Test #47: ecl_nnc_export_intersect .............***Failed 1.04 sec
-----------------------------------------------------------------
A fatal error has been detected and the program will abort.
Current executable : <Not set>
Version info : <Not set>
Error message: Abort called from: "????" (C:\dev\source\ecl\lib\util\util.c:2601)
"????": file is too small to automatically determine formatted/unformatted status
-----------------------------------------------------------------
Aborting ...
Assertion failed: 0, file C:\dev\source\ecl\lib\util\util_abort_simple.c, line 33
-----------------------------------------------------------------
A fatal error has been detected and the program will abort.
Current executable : <Not set>
Version info : <Not set>
Error message: Abort called from: "????" (C:\dev\source\ecl\lib\util\util.c:4448)
Program received signal:22
-----------------------------------------------------------------
Aborting ...
Assertion failed: 0, file C:\dev\source\ecl\lib\util\util_abort_simple.c, line 33
Start 48: ecl_sum_restart
48/114 Test #48: ecl_sum_restart ...................... Passed 0.25 sec
Start 49: ecl_sum_data_intermediate_test
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_sum_data_intermediate_test.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_sum_data_intermediate_test.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_sum_data_intermediate_test.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_sum_data_intermediate_test.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_sum_data_intermediate_test.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_sum_data_intermediate_test.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_sum_data_intermediate_test.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_sum_data_intermediate_test.exe
49/114 Test #49: ecl_sum_data_intermediate_test .......***Not Run 0.00 sec
Start 50: ecl_grid_cell_contains
50/114 Test #50: ecl_grid_cell_contains ............... Passed 0.02 sec
Start 51: ecl_unsmry_loader_test
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_unsmry_loader_test.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_unsmry_loader_test.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_unsmry_loader_test.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_unsmry_loader_test.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_unsmry_loader_test.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_unsmry_loader_test.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_unsmry_loader_test.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_unsmry_loader_test.exe
51/114 Test #51: ecl_unsmry_loader_test ...............***Not Run 0.00 sec
Start 52: ecl_init_file
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_init_file.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_init_file.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_init_file.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_init_file.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_init_file.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_init_file.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_init_file.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_init_file.exe
52/114 Test #52: ecl_init_file ........................***Not Run 0.00 sec
Start 53: ecl_kw_space_pad
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_kw_space_pad.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_kw_space_pad.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_kw_space_pad.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_kw_space_pad.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_kw_space_pad.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_kw_space_pad.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_kw_space_pad.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_kw_space_pad.exe
53/114 Test #53: ecl_kw_space_pad .....................***Not Run 0.00 sec
Start 54: ecl_kw_cmp_string
54/114 Test #54: ecl_kw_cmp_string .................... Passed 0.01 sec
Start 55: ecl_kw_equal
55/114 Test #55: ecl_kw_equal ......................... Passed 0.01 sec
Start 56: ecl_kw_fread
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_kw_fread.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_kw_fread.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_kw_fread.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_kw_fread.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_kw_fread.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_kw_fread.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_kw_fread.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_kw_fread.exe
56/114 Test #56: ecl_kw_fread .........................***Not Run 0.00 sec
Start 57: ecl_kw_grdecl
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_kw_grdecl.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_kw_grdecl.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_kw_grdecl.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_kw_grdecl.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_kw_grdecl.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_kw_grdecl.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_kw_grdecl.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_kw_grdecl.exe
57/114 Test #57: ecl_kw_grdecl ........................***Not Run 0.00 sec
Start 58: ecl_kw_init
58/114 Test #58: ecl_kw_init .......................... Passed 0.01 sec
Start 59: ecl_nnc_geometry
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_nnc_geometry.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_nnc_geometry.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_nnc_geometry.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_nnc_geometry.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_nnc_geometry.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_nnc_geometry.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_nnc_geometry.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_nnc_geometry.exe
59/114 Test #59: ecl_nnc_geometry .....................***Not Run 0.00 sec
Start 60: ecl_nnc_info_test
60/114 Test #60: ecl_nnc_info_test .................... Passed 0.01 sec
Start 61: ecl_nnc_vector
61/114 Test #61: ecl_nnc_vector ....................... Passed 0.01 sec
Start 62: ecl_rft_cell
62/114 Test #62: ecl_rft_cell ......................... Passed 0.01 sec
Start 63: ecl_sum_alloc_resampled_test
63/114 Test #63: ecl_sum_alloc_resampled_test ......... Passed 0.02 sec
Start 64: ecl_file_view
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_file_view.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_file_view.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_file_view.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_file_view.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_file_view.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_file_view.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_file_view.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_file_view.exe
64/114 Test #64: ecl_file_view ........................***Not Run 0.00 sec
Start 65: test_ecl_file_index
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/test_ecl_file_index.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/test_ecl_file_index.exe
C:/dev/source/ecl/cmake-build/bin/Debug/test_ecl_file_index.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/test_ecl_file_index.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/test_ecl_file_index.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/test_ecl_file_index.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/test_ecl_file_index.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/test_ecl_file_index.exe
65/114 Test #65: test_ecl_file_index ..................***Not Run 0.00 sec
Start 66: test_transactions
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/test_transactions.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/test_transactions.exe
C:/dev/source/ecl/cmake-build/bin/Debug/test_transactions.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/test_transactions.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/test_transactions.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/test_transactions.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/test_transactions.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/test_transactions.exe
66/114 Test #66: test_transactions ....................***Not Run 0.00 sec
Start 67: ecl_rst_file
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_rst_file.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_rst_file.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_rst_file.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_rst_file.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_rst_file.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_rst_file.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_rst_file.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_rst_file.exe
67/114 Test #67: ecl_rst_file .........................***Not Run 0.00 sec
Start 68: ecl_sum_writer
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_sum_writer.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_sum_writer.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_sum_writer.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_sum_writer.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_sum_writer.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_sum_writer.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_sum_writer.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_sum_writer.exe
68/114 Test #68: ecl_sum_writer .......................***Not Run 0.00 sec
Start 69: ecl_util_filenames
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_util_filenames.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_util_filenames.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_util_filenames.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_util_filenames.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_util_filenames.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_util_filenames.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_util_filenames.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_util_filenames.exe
69/114 Test #69: ecl_util_filenames ...................***Not Run 0.00 sec
Start 70: ecl_util_make_date_no_shift
70/114 Test #70: ecl_util_make_date_no_shift .......... Passed 0.02 sec
Start 71: ecl_util_make_date_shift
71/114 Test #71: ecl_util_make_date_shift ............. Passed 0.01 sec
Start 72: ecl_util_month_range
72/114 Test #72: ecl_util_month_range ................. Passed 0.01 sec
Start 73: ecl_valid_basename
73/114 Test #73: ecl_valid_basename ................... Passed 0.01 sec
Start 74: test_ecl_nnc_data
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/test_ecl_nnc_data.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/test_ecl_nnc_data.exe
C:/dev/source/ecl/cmake-build/bin/Debug/test_ecl_nnc_data.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/test_ecl_nnc_data.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/test_ecl_nnc_data.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/test_ecl_nnc_data.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/test_ecl_nnc_data.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/test_ecl_nnc_data.exe
74/114 Test #74: test_ecl_nnc_data ....................***Not Run 0.00 sec
Start 75: ecl_nnc_pair
75/114 Test #75: ecl_nnc_pair ......................... Passed 0.01 sec
Start 76: well_conn_collection
76/114 Test #76: well_conn_collection ................. Passed 0.01 sec
Start 77: well_branch_collection
77/114 Test #77: well_branch_collection ............... Passed 0.01 sec
Start 78: well_conn
78/114 Test #78: well_conn ............................ Passed 0.01 sec
Start 79: well_state
79/114 Test #79: well_state ........................... Passed 0.01 sec
Start 80: well_segment
80/114 Test #80: well_segment ......................... Passed 0.01 sec
Start 81: well_segment_conn
81/114 Test #81: well_segment_conn .................... Passed 0.01 sec
Start 82: well_segment_collection
82/114 Test #82: well_segment_collection .............. Passed 0.01 sec
Start 83: ecl_file
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_file.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_file.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_file.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_file.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_file.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_file.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_file.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_file.exe
83/114 Test #83: ecl_file .............................***Not Run 0.00 sec
Start 84: ecl_get_num_cpu
84/114 Test #84: ecl_get_num_cpu ...................... Passed 0.01 sec
Start 85: geo_util_xlines
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/geo_util_xlines.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/geo_util_xlines.exe
C:/dev/source/ecl/cmake-build/bin/Debug/geo_util_xlines.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/geo_util_xlines.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/geo_util_xlines.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/geo_util_xlines.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/geo_util_xlines.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/geo_util_xlines.exe
85/114 Test #85: geo_util_xlines ......................***Not Run 0.00 sec
Start 86: geo_polygon
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/geo_polygon.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/geo_polygon.exe
C:/dev/source/ecl/cmake-build/bin/Debug/geo_polygon.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/geo_polygon.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/geo_polygon.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/geo_polygon.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/geo_polygon.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/geo_polygon.exe
86/114 Test #86: geo_polygon ..........................***Not Run 0.00 sec
Start 87: geo_polygon_collection
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/geo_polygon_collection.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/geo_polygon_collection.exe
C:/dev/source/ecl/cmake-build/bin/Debug/geo_polygon_collection.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/geo_polygon_collection.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/geo_polygon_collection.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/geo_polygon_collection.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/geo_polygon_collection.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/geo_polygon_collection.exe
87/114 Test #87: geo_polygon_collection ...............***Not Run 0.00 sec
Start 88: ert_util_unique_ptr
88/114 Test #88: ert_util_unique_ptr .................. Passed 0.01 sec
Start 89: eclxx_kw
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/eclxx_kw.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/eclxx_kw.exe
C:/dev/source/ecl/cmake-build/bin/Debug/eclxx_kw.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/eclxx_kw.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/eclxx_kw.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/eclxx_kw.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/eclxx_kw.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/eclxx_kw.exe
89/114 Test #89: eclxx_kw .............................***Not Run 0.00 sec
Start 90: eclxx_fortio
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/eclxx_fortio.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/eclxx_fortio.exe
C:/dev/source/ecl/cmake-build/bin/Debug/eclxx_fortio.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/eclxx_fortio.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/eclxx_fortio.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/eclxx_fortio.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/eclxx_fortio.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/eclxx_fortio.exe
90/114 Test #90: eclxx_fortio .........................***Not Run 0.00 sec
Start 91: eclxx_filename
91/114 Test #91: eclxx_filename .......................***Failed 0.01 sec
C:\dev\source\ecl\lib\ecl\tests\eclxx_filename.cpp:24 => String are different s1:[PATH/BASE.X0067] s2:[PATH\BASE.X0067]
Start 92: eclxx_types
92/114 Test #92: eclxx_types .......................... Passed 0.01 sec
Start 93: ecl_fmt
Could not find executable C:/dev/source/ecl/cmake-build/bin/Debug/ecl_fmt.exe
Looked in the following places:
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_fmt.exe
C:/dev/source/ecl/cmake-build/bin/Debug/ecl_fmt.exe.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_fmt.exe
C:/dev/source/ecl/cmake-build/bin/Debug/Debug/ecl_fmt.exe.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_fmt.exe
Debug/C:/dev/source/ecl/cmake-build/bin/Debug/ecl_fmt.exe.exe
Unable to find executable: C:/dev/source/ecl/cmake-build/bin/Debug/ecl_fmt.exe
93/114 Test #93: ecl_fmt ..............................***Not Run 0.00 sec
Start 94: ecl_grid_layer_contains_faarikaal1
94/114 Test #94: ecl_grid_layer_contains_faarikaal1 ... Passed 0.03 sec
Start 95: ecl_grid_layer_contains_faarikaal2
95/114 Test #95: ecl_grid_layer_contains_faarikaal2 ... Passed 0.01 sec
Start 96: ecl_grid_layer_contains_faarikaal3
96/114 Test #96: ecl_grid_layer_contains_faarikaal3 ... Passed 0.01 sec
Start 97: ecl_grid_layer_contains_faarikaal4
97/114 Test #97: ecl_grid_layer_contains_faarikaal4 ... Passed 0.01 sec
Start 98: ecl_grid_layer_contains_faarikaal5
98/114 Test #98: ecl_grid_layer_contains_faarikaal5 ... Passed 0.01 sec
Start 99: ecl_grid_layer_contains_faarikaal6
99/114 Test #99: ecl_grid_layer_contains_faarikaal6 ... Passed 0.01 sec
Start 100: ecl_grid_layer_contains_faarikaal7
100/114 Test #100: ecl_grid_layer_contains_faarikaal7 ... Passed 0.01 sec
Start 101: ecl_region_faarikaal1
101/114 Test #101: ecl_region_faarikaal1 ................ Passed 0.02 sec
Start 102: ecl_region_faarikaal2
102/114 Test #102: ecl_region_faarikaal2 ................ Passed 0.01 sec
Start 103: ecl_region_faarikaal3
103/114 Test #103: ecl_region_faarikaal3 ................ Passed 0.01 sec
Start 104: ecl_region_faarikaal4
104/114 Test #104: ecl_region_faarikaal4 ................ Passed 0.01 sec
Start 105: ecl_region_faarikaal5
105/114 Test #105: ecl_region_faarikaal5 ................ Passed 0.01 sec
Start 106: ecl_region_faarikaal6
106/114 Test #106: ecl_region_faarikaal6 ................ Passed 0.01 sec
Start 107: ecl_region_faarikaal7
107/114 Test #107: ecl_region_faarikaal7 ................ Passed 0.01 sec
Start 108: ecl_grid_copy_faarikaal1
108/114 Test #108: ecl_grid_copy_faarikaal1 ............. Passed 0.02 sec
Start 109: ecl_grid_copy_faarikaal2
109/114 Test #109: ecl_grid_copy_faarikaal2 ............. Passed 0.01 sec
Start 110: ecl_grid_copy_faarikaal3
110/114 Test #110: ecl_grid_copy_faarikaal3 ............. Passed 0.01 sec
Start 111: ecl_grid_copy_faarikaal4
111/114 Test #111: ecl_grid_copy_faarikaal4 ............. Passed 0.01 sec
Start 112: ecl_grid_copy_faarikaal5
112/114 Test #112: ecl_grid_copy_faarikaal5 ............. Passed 0.01 sec
Start 113: ecl_grid_copy_faarikaal6
113/114 Test #113: ecl_grid_copy_faarikaal6 ............. Passed 0.01 sec
Start 114: ecl_grid_copy_faarikaal7
114/114 Test #114: ecl_grid_copy_faarikaal7 ............. Passed 0.01 sec
58% tests passed, 48 tests failed out of 114
Total Test time (real) = 11.13 sec
The following tests FAILED:
1 - ert_util_alloc_file_components (Not Run)
2 - ert_util_split_path (Failed)
8 - ert_util_chdir (Not Run)
9 - ert_util_filename (Not Run)
11 - ert_util_parent_path (Not Run)
13 - ert_util_relpath_test (Not Run)
15 - ert_util_sscan_test (Not Run)
18 - ert_util_stringlist_test (Not Run)
23 - ert_util_datetime (Not Run)
24 - ert_util_normal_path (Not Run)
25 - ert_util_mkdir_p (Not Run)
26 - test_area (Not Run)
28 - ert_util_work_area (Not Run)
29 - ert_util_cwd_test (Failed)
30 - ert_util_copy_file (Not Run)
31 - ert_util_file_readable (Not Run)
32 - ert_util_path_stack_test (Not Run)
35 - ecl_fault_block_layer (Not Run)
36 - ecl_util_path_access (Not Run)
37 - ecl_grid_add_nnc (Not Run)
41 - ecl_grid_fwrite (Not Run)
42 - ecl_grid_unit_system (Not Run)
43 - ecl_grid_export (Not Run)
44 - ecl_grid_init_fwrite (Not Run)
46 - ecl_grid_ext_actnum (Not Run)
47 - ecl_nnc_export_intersect (Failed)
49 - ecl_sum_data_intermediate_test (Not Run)
51 - ecl_unsmry_loader_test (Not Run)
52 - ecl_init_file (Not Run)
53 - ecl_kw_space_pad (Not Run)
56 - ecl_kw_fread (Not Run)
57 - ecl_kw_grdecl (Not Run)
59 - ecl_nnc_geometry (Not Run)
64 - ecl_file_view (Not Run)
65 - test_ecl_file_index (Not Run)
66 - test_transactions (Not Run)
67 - ecl_rst_file (Not Run)
68 - ecl_sum_writer (Not Run)
69 - ecl_util_filenames (Not Run)
74 - test_ecl_nnc_data (Not Run)
83 - ecl_file (Not Run)
85 - geo_util_xlines (Not Run)
86 - geo_polygon (Not Run)
87 - geo_polygon_collection (Not Run)
89 - eclxx_kw (Not Run)
90 - eclxx_fortio (Not Run)
91 - eclxx_filename (Failed)
93 - ecl_fmt (Not Run)
Errors while running CTest
So from the build output I think there are some unix dependencies not available on Windows. For example unistd.h
:
C:\dev\source\ecl\lib\ecl\tests\test_transactions.cpp(21,10): fatal error C1083: Cannot open include file: 'unistd.h': No such
file or directory [C:\dev\source\ecl\cmake-build\lib\test_transactions.vcxproj]
I was having a look around and there are options like this https://github.com/robinrowe/libunistd but I'm not exactly sure how to include it in available path cmake searches for. Can I just add it to the system path?
Update 1:
Cloned libunistd
to the ecl
project directory and reran cmake and cmake --build. I don't get the include error but before the dll is built I get a different error.
FortIO.cpp
Auto build dll exports
Creating library C:/dev/source/ecl/cmake-build/lib/Debug/ecl.lib and object C:/dev/source/ecl/cmake-build/lib/Debug/ecl.e
xp
util.obj : error LNK2019: unresolved external symbol __imp_PathMatchSpecA referenced in function util_fnmatch [C:\dev\source\e
cl\cmake-build\lib\ecl.vcxproj]
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.18362.0\um\x86\ShLwApi.Lib : warning LNK4272: library machine type 'x86' conflicts with target machine type 'x64' [C:\dev\source\ecl\cmake-build\lib\ecl.vcxproj]
C:\dev\source\ecl\cmake-build\lib\Debug\libecl.dll : fatal error LNK1120: 1 unresolved externals [C:\dev\source\ecl\cmake-buil
d\lib\ecl.vcxproj]
Update 2:
Turns out I wasn't using the x64 build tools. So that fixed the last problem " library machine type 'x86' conflicts with target machine type 'x64' ".
New build errors look like this with the message unresolved external symbol "public: __cdecl ecl::util::TestArea::TestArea
ecl_file_view.obj : error LNK2019: unresolved external symbol "public: __cdecl ecl::util::TestArea::TestArea(class std::basic_
string<char,struct std::char_traits<char>,class std::allocator<char> > const &,bool)" (??0TestArea@util@ecl@@QEAA@AEBV?$basic_
string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z) referenced in function "void __cdecl test_create_file_kw(void)" (?t
est_create_file_kw@@YAXXZ) [C:\dev\source\ecl\cmake-build\lib\ecl_file_view.vcxproj]
ecl_file_view.obj : error LNK2019: unresolved external symbol "public: __cdecl ecl::util::TestArea::~TestArea(void)" (??1TestA
rea@util@ecl@@QEAA@XZ) referenced in function "void __cdecl test_create_file_kw(void)" (?test_create_file_kw@@YAXXZ) [C:\dev\source\ecl\cmake-build\lib\ecl_file_view.vcxproj]
C:\dev\source\ecl\cmake-build\bin\Debug\ecl_file_view.exe : fatal error LNK1120: 2 unresolved externals [C:\dev\source\ecl\cmake-build\lib\ecl_file_view.vcxproj]
Full Error List Attached. https://drive.google.com/drive/folders/1jI4RxsBjFelb1JvkSX7xgKN-T4SDiPPP?usp=sharing
unistd.h
should not be used by any Windows code. These probably come from the filesystem tests that failed. Today we bumped the C++ minimum standard version to 17 for tests only (hopefully other code soon too), added a Tmpdir
class, and all around made the superior std::filesystem
available for use. These failing tests should be rewritten with std::filesystem
in mind.
Have you attempted pip install
ing the Python part of the library and getting anything from the ecl
module to behave?
I reckon also that a lot of the utility functions are of little interest to anyone and should be deprecated. I'm planning to review them when I have time, and maybe we'll end up removing some tests.
Tmpdir
: https://github.com/equinor/ecl/blob/382d2dbbce495a34acfcabf258833e82b345f064/lib/tests/tmpdir.hpp
Just tried a few different things with the Python installer.
Built a wheel using python setup.py bdist_wheel
in a separate env and installed the wheel in a fresh env.
Tried python setup.py install
and python setup.py develop
in the fresh env.
All of these return an error on finding the libecl.dll
.
Python 3.8.6 | packaged by conda-forge | (default, Nov 27 2020, 18:58:29) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import ecl
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\trhal\Anaconda3\envs\ecltest\lib\site-packages\ecl\__init__.py", line 95, in <module>
class EclPrototype(Prototype):
File "C:\Users\trhal\Anaconda3\envs\ecltest\lib\site-packages\ecl\__init__.py", line 96, in EclPrototype
lib = dlopen_libecl()
File "C:\Users\trhal\Anaconda3\envs\ecltest\lib\site-packages\ecl\__init__.py", line 92, in dlopen_libecl
return ctypes.CDLL(path, ctypes.RTLD_GLOBAL)
File "C:\Users\trhal\Anaconda3\envs\ecltest\lib\ctypes\__init__.py", line 373, in __init__
self._handle = _dlopen(self._name, mode)
FileNotFoundError: Could not find module 'C:\Users\trhal\Anaconda3\envs\ecltest\lib\site-packages\ecl\.bin\libecl.dll' (or one of its dependencies). Try using the full path with constructor syntax.
I checked, and the dll is built and definitely in the folder. Tried a few configurations in the ecl\__init__.py
file. No luck, tried adding the .bin
folder to the path and that didn't work either. Not sure why it's not working now.
I did a dumpbin on the dll. I guess if these are not on the path it won't work. Not sure if they can be added as python deps or included in the dist_build process...
C:\Users\trhal\Anaconda3\envs\ecltest\Lib\site-packages\ecl\.bin>dumpbin /DEPENDENTS libecl.dll
Microsoft (R) COFF/PE Dumper Version 14.28.29335.0
Copyright (C) Microsoft Corporation. All rights reserved.
Dump of file libecl.dll
File Type: DLL
Image has the following dependencies:
zlib.dll
SHLWAPI.dll
KERNEL32.dll
MSVCP140.dll
VCRUNTIME140.dll
VCRUNTIME140_1.dll
api-ms-win-crt-heap-l1-1-0.dll
api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-crt-math-l1-1-0.dll
api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-crt-utility-l1-1-0.dll
api-ms-win-crt-string-l1-1-0.dll
api-ms-win-crt-time-l1-1-0.dll
api-ms-win-crt-filesystem-l1-1-0.dll
api-ms-win-crt-convert-l1-1-0.dll
api-ms-win-crt-locale-l1-1-0.dll
Summary
1000 .data
D000 .pdata
114000 .rdata
1000 .reloc
1000 .rsrc
96000 .text
Ok, sorted out the last issue, apparently there are some security controls for loading dll on Windows.
From the ctypes
api:
The winmode parameter is used on Windows to specify how the library is loaded (since mode is ignored). It takes any value that is valid for the Win32 API LoadLibraryEx flags parameter. When omitted, the default is to use the flags that result in the most secure DLL load to avoiding issues such as DLL hijacking. Passing the full path to the DLL is the safest way to ensure the correct library and dependencies are loaded.
After setting winmode=1 in the CDLL
function of the __init__.py
I was able to build install and import ecl
functions.
The classes import ok but I get an access violation when trying to open the test data.
Python 3.8.6 | packaged by conda-forge | (default, Nov 27 2020, 18:58:29) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from ecl.grid import EclGrid
>>> EclGrid("faarikaal1.EGRID")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\trhal\Anaconda3\envs\ecltest\lib\site-packages\ecl\grid\ecl_grid.py", line 240, in __init__
c_ptr = self._fread_alloc(filename, apply_mapaxes)
File "C:\Users\trhal\Anaconda3\envs\ecltest\lib\site-packages\cwrap\prototype.py", line 218, in __call__
return self._func(*args)
OSError: exception: access violation writing 0x00000000001A9FCE
>>> from ecl.eclfile import openEclFile
>>> openEclFile("farrikaal7.EGRID")
The function openEclFile is deprecated, use open_ecl_file.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\trhal\Anaconda3\envs\ecltest\lib\site-packages\ecl\eclfile\ecl_file.py", line 711, in openEclFile
return open_ecl_file(file_name, flags)
File "C:\Users\trhal\Anaconda3\envs\ecltest\lib\site-packages\ecl\eclfile\ecl_file.py", line 715, in open_ecl_file
return EclFileContextManager(EclFile(file_name, flags))
File "C:\Users\trhal\Anaconda3\envs\ecltest\lib\site-packages\ecl\eclfile\ecl_file.py", line 212, in __init__
c_ptr = self._open( filename , flags )
File "C:\Users\trhal\Anaconda3\envs\ecltest\lib\site-packages\cwrap\prototype.py", line 218, in __call__
return self._func(*args)
OSError: exception: access violation writing 0x00000000001AA2C6
Other Notes:
Something was broken with numpy
1.19.4` reverting to 1.18 fixed this.
RuntimeError: The current Numpy installation ('C:\\Users\\trhal\\Anaconda3\\envs\\ecltest\\lib\\site-packages\\numpy\\__init__.py') fails to pass a sanity check due to a bug in the windows runtime. See this issue for more information: https://tinyurl.com/y3dm3h86
Nice! Good find. With python setup.py develop
or python setup.py build_ext
, the DLLs should exist under python/res/.libs
and .bin
. This means you should be able to do pytest python/tests
. I reckon it'll explode but should be fixable. There are no doubt functionality that tests for POSIX-only behaviour which I have no qualms about removing.
I'm away from my desktop with a Windows VM for the next two weeks so I won't be able to test any of this.
This is the general gist of the pytest
errors after using python setup.py develop
=========================================================================================== short test summary info ============================================================================================
ERROR ecl\util\test\test_area.py - cwrap.prototype.PrototypeError: Can not find function: test_work_area_alloc__ in library: <WinDLL 'C:\dev\source\ecl\python\ecl\.bin\libecl.dll', handle 7ffb25e70000 at 0x...
ERROR ecl\util\test\test_run.py - cwrap.prototype.PrototypeError: Type: 'test_area' already registered!
ERROR tests\bin_tests\test_summary_resample.py - cwrap.prototype.PrototypeError: Type: 'test_area' already registered!
ERROR tests\ecl_tests\test_cell.py - cwrap.prototype.PrototypeError: Type: 'test_area' already registered!
ERROR tests\ecl_tests\test_debug.py - cwrap.prototype.PrototypeError: Type: 'test_area' already registered!
I looked at the exports of .bin/libecl.dll
and it doesn't contain any references to test_work_area_alloc__
. But is referenced in the skbuild output.
Oh, this could be due to incorrect exports on the functions used by Python. Both on Linux and macOS (and most everything else) every symbol gets exported, while on Windows with MSVC one has explicitly export with __declspec(dllexport)
. Likely this function doesn't have it set...
What about this commit https://github.com/trhallam/ecl/commit/5d0e1ad15e8c9a4491d9a5f5169d3e12a0e6b02a "Disabled TestArea module with MSVC because it causes linker errors."
Most likely, yes. I'll try rewriting it to use std::filesystem
later today/tomorrow.
A PR including a build for Windows using GitHub Actions has now been merged. Please note that no tests are executed. https://github.com/equinor/ecl/pull/806
I tested this with a fresh install using scikit-build this afternoon and I was able to run my EclGrid EclSum and EclFile workflows OK. The same build errors as last time were not occurring.
I had a play around with the pytest suite but it's too closely wound up with the C tests and the reliance on linux only libraries. Pytest also seem to explicitly use the source instance of the code which means when using skbuild it can't find the DLL. This will either need to be pointed to manually or pytest could use an "installed" version of the library that had the dll in a findable location.
I had another go at it, but had no luck. If we get funding for a Windows version then I'll be happy to try again, but as it stands now, the official suggestion is to use WSL if you're on Windows.
I had a play around with the pytest suite but it's too closely wound up with the C tests and the reliance on linux only libraries.
We're not relying on any non-Windows libraries (namely only zlib), but rather we're relying on the OS being POSIX-compatible. Frustratingly, Windows is the only modern operating system that doesn't support POSIX.
Pytest also seem to explicitly use the source instance of the code which means when using skbuild it can't find the DLL. This will either need to be pointed to manually or pytest could use an "installed" version of the library that had the dll in a findable location.
Yes. We get around this issue by creating a separate directory and symlinking some necessary directories over. See: https://github.com/equinor/ecl/blob/3d6d17e1470419fc5af0c891560fb2211b2eda0d/.github/workflows/testing.yml#L92-L114
I've had another go at this today with success as far as I can tell.
Not sure if you want me to submit a pull request but the edits I've made are here: https://github.com/trhallam/ecl/commit/0c73bfa66413c29455fac5af5fbf9f3bfa152c57 and I've got a working wheel for Windows x64 available here https://github.com/trhallam/ecl/releases/tag/v2.10.1
Key Issues:
- The
libecl.dll
ends up in./.bin
not./libs
. - When using
ctypes.CDLL
to loadlibecl.dll
there were problems identifying wherezlib.dll
is stored. I don't quite understand why but if I usectypes.OleDLL
to loadzlib.dll
explicitly first, the problem withlibecl.dll
goes away. I'm a bit confused becausezlib.dll
is on the same path as all the other dependencies. - Getting zlib recognized means the
winmode
flag is not required. - As long as the development shell is active from Visual Studio building with scikit-build proceeds as usual via
python setup.py bdist_wheel
- Also had to enable the environment variable
ECL_SKIP_SIGNAL
although I'm not strictly sure if this is necessary.
- The
libecl.dll
ends up in./.bin
not./libs
.
CMake puts DLLs into the bin directory on Windows. You can change it here: https://github.com/equinor/ecl/blob/c361c259ee938d064b13e99065a6dbc01477cff0/setup.py#L75
Note that on Linux we need to have the binaries (from applications/
) in the .bin
directory. This is a Linux-only feature insofar that I couldn't figure out how to get RPATH to work properly on macOS.
- When using
ctypes.CDLL
to loadlibecl.dll
there were problems identifying wherezlib.dll
is stored. I don't quite understand why but if I usectypes.OleDLL
to loadzlib.dll
explicitly first, the problem withlibecl.dll
goes away. I'm a bit confused becausezlib.dll
is on the same path as all the other dependencies.
OLE is some Microsoft thing that this project should definitely not be using. From what I understand it's used to embed views into other programs, eg. inserting a chart from Microsoft Excel into Microsoft Word.
ctypes.WinDLL
is probably what you're looking for. I would imagine that MSVC uses stdcall
by default, so ctypes.WinDLL
is the way to go.
As for not being able to find zlib.dll
, you should try using auditwheel. It's the program that is used to finalise Python wheels. One of the things it does is that it embeds every non-standard library into the .whl
, in a way that Python can later figure it out.
pip wheel . --no-deps -w dist # Make a wheel for ecl (and only ecl due to --no-deps), write result into dist/
auditwheel repair dist/* # Repair everything in the dist/ directory
- Getting zlib recognized means the
winmode
flag is not required.
I'm not certain what this flag does.ecl
already opens the library using an absolute path, so no hijacking can happen (I think).
- Also had to enable the environment variable
ECL_SKIP_SIGNAL
although I'm not strictly sure if this is necessary.
The signal hijacking of ecl
has given us so much headaches that I would like to have any excuse to rip it out. We already use ECL_SKIP_SIGNAL
in our downstream projects, and we're only keeping it because we're scared that someone relies on this feature.