]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentelemetry-cpp/tools/vcpkg/ports/ngspice/portfile.cmake
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / tools / vcpkg / ports / ngspice / portfile.cmake
1 vcpkg_fail_port_install(ON_TARGET "Linux" "OSX" "UWP" ON_ARCH "arm" "arm64")
2
3 vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
4
5 # ngspice produces self-contained DLLs
6 set(VCPKG_CRT_LINKAGE static)
7
8 vcpkg_from_sourceforge(
9 OUT_SOURCE_PATH SOURCE_PATH
10 REPO ngspice/ng-spice-rework
11 REF 34
12 FILENAME "ngspice-34.tar.gz"
13 SHA512 5e90727f3f6b8675b83f71e1961d33cd498081a7f3bea5d081521f12ecb3979775159f083f84a5856233529505262c399f75d305758af51894a1245603476cf8
14 PATCHES
15 use-winbison-sharedspice.patch
16 use-winbison-vngspice.patch
17 )
18
19 vcpkg_find_acquire_program(BISON)
20
21 get_filename_component(BISON_DIR "${BISON}" DIRECTORY)
22 vcpkg_add_to_path(PREPEND "${BISON_DIR}")
23
24 # Sadly, vcpkg globs .libs inside install_msbuild and whines that the 47 year old SPICE format isn't a MSVC lib ;)
25 # We need to kill them off first before the source tree is copied to a tmp location by install_msbuild
26
27 file(REMOVE_RECURSE ${SOURCE_PATH}/contrib)
28 file(REMOVE_RECURSE ${SOURCE_PATH}/examples)
29 file(REMOVE_RECURSE ${SOURCE_PATH}/man)
30 file(REMOVE_RECURSE ${SOURCE_PATH}/tests)
31
32 # this builds the main dll
33 vcpkg_install_msbuild(
34 SOURCE_PATH ${SOURCE_PATH}
35 INCLUDES_SUBPATH /src/include
36 LICENSE_SUBPATH COPYING
37 # install_msbuild swaps x86 for win32(bad) if we dont force our own setting
38 PLATFORM ${TRIPLET_SYSTEM_ARCH}
39 PROJECT_SUBPATH visualc/sharedspice.sln
40 TARGET Build
41 )
42
43 if("codemodels" IN_LIST FEATURES)
44 # vngspice generates "codemodels" to enhance simulation capabilities
45 # we cannot use install_msbuild as they output with ".cm" extensions on purpose
46 set(BUILDTREE_PATH ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
47 file(REMOVE_RECURSE ${BUILDTREE_PATH})
48 file(COPY ${SOURCE_PATH}/ DESTINATION ${BUILDTREE_PATH})
49
50 vcpkg_build_msbuild(
51 PROJECT_PATH ${BUILDTREE_PATH}/visualc/vngspice.sln
52 INCLUDES_SUBPATH /src/include
53 LICENSE_SUBPATH COPYING
54 # build_msbuild swaps x86 for win32(bad) if we dont force our own setting
55 PLATFORM ${TRIPLET_SYSTEM_ARCH}
56 TARGET Build
57 )
58
59 # ngspice oddly has solution configs of x64 and x86 but
60 # output folders of x64 and win32
61 if(VCPKG_TARGET_ARCHITECTURE STREQUAL x64)
62 set(OUT_ARCH x64)
63 elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL x86)
64 set(OUT_ARCH Win32)
65 else()
66 message(FATAL_ERROR "Unsupported target architecture")
67 endif()
68
69 #put the code models in the intended location
70 file(GLOB NGSPICE_CODEMODELS_DEBUG
71 ${BUILDTREE_PATH}/visualc/codemodels/${OUT_ARCH}/Debug/*.cm
72 )
73 file(COPY ${NGSPICE_CODEMODELS_DEBUG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/ngspice)
74
75 file(GLOB NGSPICE_CODEMODELS_RELEASE
76 ${BUILDTREE_PATH}/visualc/codemodels/${OUT_ARCH}/Release/*.cm
77 )
78 file(COPY ${NGSPICE_CODEMODELS_RELEASE} DESTINATION ${CURRENT_PACKAGES_DIR}/lib/ngspice)
79
80
81 # copy over spinit (spice init)
82 file(RENAME ${BUILDTREE_PATH}/visualc/spinit_all ${BUILDTREE_PATH}/visualc/spinit)
83 file(COPY ${BUILDTREE_PATH}/visualc/spinit DESTINATION ${CURRENT_PACKAGES_DIR}/share/ngspice)
84 endif()
85
86 vcpkg_copy_pdbs()
87
88 # Unforunately install_msbuild isn't able to dual include directories that effectively layer
89 file(GLOB NGSPICE_INCLUDES ${SOURCE_PATH}/visualc/src/include/ngspice/*)
90 file(COPY ${NGSPICE_INCLUDES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/ngspice)
91
92 # This gets copied by install_msbuild but should not be shared
93 file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/cppduals)