libogg does not build a shared libary with cmake (#42877)
* when built with cmake, libogg does not build with a shared libary by default. This resolves that * spack style fixes * Clean up imports * enforce +pic when +shared
This commit is contained in:
parent
d0bdd66238
commit
983422facf
1 changed files with 22 additions and 2 deletions
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from spack.build_systems.generic import GenericBuilder
|
from spack.build_systems import cmake, generic
|
||||||
from spack.package import *
|
from spack.package import *
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,6 +22,16 @@ class Libogg(CMakePackage, AutotoolsPackage, Package):
|
||||||
version("1.3.4", sha256="fe5670640bd49e828d64d2879c31cb4dde9758681bb664f9bdbf159a01b0c76e")
|
version("1.3.4", sha256="fe5670640bd49e828d64d2879c31cb4dde9758681bb664f9bdbf159a01b0c76e")
|
||||||
version("1.3.2", sha256="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692")
|
version("1.3.2", sha256="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692")
|
||||||
|
|
||||||
|
variant("shared", default=True, description="Build shared library", when="build_system=cmake")
|
||||||
|
variant(
|
||||||
|
"pic",
|
||||||
|
default=True,
|
||||||
|
description="Produce position-independent code (for shared libs)",
|
||||||
|
when="build_system=cmake",
|
||||||
|
)
|
||||||
|
|
||||||
|
requires("+pic", when="+shared")
|
||||||
|
|
||||||
# Backport a patch that fixes an unsigned typedef problem on macOS:
|
# Backport a patch that fixes an unsigned typedef problem on macOS:
|
||||||
# https://github.com/xiph/ogg/pull/64
|
# https://github.com/xiph/ogg/pull/64
|
||||||
patch(
|
patch(
|
||||||
|
@ -37,7 +47,17 @@ class Libogg(CMakePackage, AutotoolsPackage, Package):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class GenericBuilder(GenericBuilder):
|
class CMakeBuilder(cmake.CMakeBuilder):
|
||||||
|
def cmake_args(self):
|
||||||
|
base_cmake_args = [
|
||||||
|
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
|
||||||
|
self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"),
|
||||||
|
]
|
||||||
|
|
||||||
|
return base_cmake_args
|
||||||
|
|
||||||
|
|
||||||
|
class GenericBuilder(generic.GenericBuilder):
|
||||||
phases = ["build", "install"]
|
phases = ["build", "install"]
|
||||||
|
|
||||||
def is_64bit(self):
|
def is_64bit(self):
|
||||||
|
|
Loading…
Reference in a new issue