diff --git a/cc/cc.go b/cc/cc.go
index c8d5251..ce1cb0a 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -1585,6 +1585,7 @@
 }
 
 var Bool = proptools.Bool
+var BoolDefault = proptools.BoolDefault
 var BoolPtr = proptools.BoolPtr
 var String = proptools.String
 var StringPtr = proptools.StringPtr
diff --git a/cc/library.go b/cc/library.go
index 98a9673..00dc86b 100644
--- a/cc/library.go
+++ b/cc/library.go
@@ -700,13 +700,11 @@
 }
 
 func (library *libraryDecorator) buildStatic() bool {
-	return library.MutatedProperties.BuildStatic &&
-		(library.Properties.Static.Enabled == nil || *library.Properties.Static.Enabled)
+	return library.MutatedProperties.BuildStatic && BoolDefault(library.Properties.Static.Enabled, true)
 }
 
 func (library *libraryDecorator) buildShared() bool {
-	return library.MutatedProperties.BuildShared &&
-		(library.Properties.Shared.Enabled == nil || *library.Properties.Shared.Enabled)
+	return library.MutatedProperties.BuildShared && BoolDefault(library.Properties.Shared.Enabled, true)
 }
 
 func (library *libraryDecorator) getWholeStaticMissingDeps() []string {
diff --git a/cc/test.go b/cc/test.go
index b8e9cdb..fef6367 100644
--- a/cc/test.go
+++ b/cc/test.go
@@ -128,7 +128,7 @@
 }
 
 func (test *testDecorator) gtest() bool {
-	return test.Properties.Gtest == nil || *test.Properties.Gtest == true
+	return BoolDefault(test.Properties.Gtest, true)
 }
 
 func (test *testDecorator) linkerFlags(ctx ModuleContext, flags Flags) Flags {
